安装:
windows:
第1步:
根据系统版本下载对应twisted,下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
第2步:
输入以下命令,注意后面的路径是下载的twisted存放的路径名
pip install C:\Users\Administrator\Downloads\Twisted-18.7.0-cp36-cp36m-win_amd64.whl
第3步:
再执行pip install scrapy即可完成安装
创建项目:
- 创建项目
- scrapy startproject firstblood
- 项目目录结构
- firstblood
firstblood 真正的项目文件
__pycache__ 缓存文件
spiders 爬虫文件存放的地方
__pycache__
__init__.py
lala.py 爬虫文件(*)
__init__.py 包的标志
items.py 定义数据结构的地方(*)
middlewares.py 中间件
pipelines.py 管道文件(*)
settings.py 配置文件(*)
scrapy.cfg 不用管
- firstblood
- 生成爬虫文件
- cd firstblood
- scrapy genspider qiubai www.qiushibaike.com
-
# -*- coding: utf-8 -*- import scrapy class LuojisiweiSpider(scrapy.Spider): # 爬虫名字 name = 'luojisiwei' # 允许的域名 allowed_domains = ['https://weixin.sogou.com/'] # 起始url start_urls = ['https://weixin.sogou.com/'] # 解析函数 重写父类方法 def parse(self, response): # response是起始url网址的对象 print(response) # 获取url页面所有内容,字符串 response.text # 获取url页面所有内容,字节类型 response.body # 获取response的url response.url # 获取响应状态码 response.status # 获取响应头 response.headers # xpath,scrapy内集成的xpath略有不同,这样获取到的是一个对象的列表,即时只获取到一个对象,也是列表形式 div_list = response.xpath('//div[@id="content-left"]/div') # 后面加extract()方法会把获取到的对象列表转成‘字符串’列表, div_rst1 = response.xpath('//div[@id="content-left"]/div').extract() # 再通过下标可获得具体的某一个元素的字符串内容,注意,.extract()[0]和[0].extract()效果一样 div_rst1 = response.xpath('//div[@id="content-left"]/div').extract()[0] # 获取标签的属性值 img_src= response.xpath('//div[@id="content-left"]/img/@src').extract()[0] # 获取标签的文本内容 rst2 = response.xpath('//ul[@class="news-list"]/li/div/h3/a/text()')[0].extract() # css选择器获取指定标签 rst3 = response.css('.txt-box > h3 > a')[0].extract() # css选择器获取指定标签的指定属性 rst4 = response.css('.txt-box > h3 > a::attr(href)')[0].extract() # css选择器获取指定标签的文本内容 rst5 = response.css('.txt-box > h3 > a::text()')[0].extract()
-