学习:https://www.cnblogs.com/foremostxl/p/10078543.html
基础语法:
在命令行下创建工程: scrapy startproject 项目名称
在命令行下创建项目: cd 进入工程所在文件夹 scrapy genspider 爬虫文件的名称 起始url
再执行命令: 项目文件下执行 :scrapy crawl 爬虫文件的名称 –nolog(阻止日志信息的输出) settings里 19行:之前程序里的headers,伪装UA—对请求载体的身份进行伪装 22行:False—不遵从robots协议
import scrapy
class TestSpider(scrapy.Spider): # 爬虫文件的名称:通过爬虫文件的名称可以指定的定位到某一个具体的爬虫文件 name = 'test' # 允许的域名:只可以爬取指定域名下的页面数据,一般注释掉 # allowed_domains = ['www.qiushibaike.com']
# 起始url,自动加协议头,注意协议 start_urls = ['https://www.qiushibaike.com/text']
# 解析方法:对获取的页面数据进行指定内容的解析,建议使用Xpath解析 # response:根据起始url列表发起请求,请求成功后返回的响应对象 # parse方法返回值:必须为迭代器或者空
def parse(self, response): # 建议大家使用xpath进行解析(框架集成了xpath解析的接口) div_list = response.xpath("//div[@id='content-left']/div") for div in div_list: # author = div.xpath('./div/a[2]/h2/text()') # content = div.xpath(".//div[@class='content']/span/text()")
# xpath解析到的指定内容被存储到了Selector对象
# extract()改方法可以将Selector对象数据值拿到 #author = div.xpath('./div/a[2]/h2/text()').extract()[0] # extract()[0]======>extract_first()
author = div.xpath('./div/a[2]/h2/text()').extract_first() content = div.xpath(".//div[@class='content']/span/text()").extract_first() print(author) print(content)
小结:
- xpath语法
- extract()[0]=extract_first()
- start_urls 自动加协议头,注意协议
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试