1.工程的创建
scrapy startproject hello
创建文件
scrapy genspider example example.com
===
修改工程中 items的定义
items的作用是定义网上爬取的数据,结构体类似于字典来保存数据
例如
class DoubanMovieItem(scrapy.Item):
#申明自己要爬去的东西,创建了这样一个类
# 排名
ranking = scrapy.Field()
# 电影名称
movie_name = scrapy.Field()
# 评分
ctrl+alt+t:添加try/catch Pycharm添加异常处理机制的快捷键
1.在所要爬取的网页后添加/robots.txt
e.g http://huaban.com/robots.txt 就可以查看该网站的 爬取信息
2.获取网站所有技术
import builtwith
builtwith.parse('http://huaban.com')
3.获取网站所有者信息
import whois
whois.whois(''http://huaban.com')
xpath解析 我的错误编辑写法:
//*[@id="content"]/div/div[1]/div[2]/span[3]/a
'.//div[@class="star"]/span/text()'
.//div[@class="item"/pic]
'.//div[@class="pic"]/em/text()'
.//div[@class="hd"]/a/span[class="title"]/test()
.//div[@class="hd"]/a/span[1]/text()
.//div[@class="star"]/span[3]/text()
Scrapy 命令
scrapy startproject myproject //创建Scrapy项目
scrapy genspider douban_movie_top250 https://movie.douban.com/top250 //创建一个Scrapy python文件
全局命令:
startproject
settings
runspider
shell
fetch
view
version
项目(Project-only)命令:
crawl
check
list
edit
parse
genspider
deploy
bench
Spiders
Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。
spider中初始的request是通过调用 start_requests() 来获取的。 start_requests() 读取 start_urls 中的URL, 并以 parse 为回调函数生成 Request
在运行 crawl 时添加 -a 可以传递Spider参数:
scrapy crawl myspider -a category=electronics
Scrapy提取数据有自己的一套机制。它们被称作选择器(seletors),因为他们通过特定的 XPath 或者 CSS 表达式来“选择” HTML文件中的某个部分。选择器
//*[@id="content"]/div/div[1]/ol/li[1]/div/div[1]/em