scrapy基础代码解析
- 爬虫文件剖析:
# -*- coding: utf-8 -*-import scrapyclass QiubaiSpider(scrapy.Spider):name = 'qiubai' #应用名称#允许爬取的域名(如果遇到非该域名的url则爬取不到数据)allowed_domains = ['https://www.qiushibaike.com/']#起始爬取的urlstart_urls = ['https://www.qiushibaike.com/']#访问起始URL并获取结果后的回调函数,该函数的response参数就是向起始的url发送请求后,获取的响应对象.该函数返回值必须为可迭代对象或者NUlldef parse(self, response):print(response.text) #获取字符串类型的响应内容print(response.body)#获取字节类型的相应内容
-
配置文件settings.py修改:
#修改内容及其结果如下:#19行:USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' #伪装请求载体身份22行:ROBOTSTXT_OBEY = False #可以忽略或者不遵守robots协议
-
scrapy基于xpath数据解析操作:
-
爬取糗事百科的段子数据
# -*- coding: utf-8 -*-import scrapyclass QiubaiSpider(scrapy.Spider):name = 'qiubai'allowed_domains = ['https://www.qiushibaike.com/']start_urls = ['https://www.qiushibaike.com/']def parse(self, response):#xpath为response中的方法,可以将xpath表达式直接作用于该函数中odiv = response.xpath('//div[@id="content-left"]/div')content_list = [] #用于存储解析到的数据for div in odiv:#xpath函数返回的为列表,列表中存放的数据为Selector类型的数据。我们解析到的内容被封装在了Selector对象中,需要调用extract()函数将解析的内容从Selecor中取出。author = div.xpath('.//div[@class="author clearfix"]/a/h2/text()')[0].extract()content=div.xpath('.//div[@class="content"]/span/text()')[0].extract()#打印展示爬取到的数据print(author,content)
-
作者:华王
博客:https://www.cnblogs.com/huahuawang/
浙公网安备 33010602011771号