在项目下spider文件夹中找到创建的爬虫实例,
import scrapy
class ItcastSpider(scrapy.Spider):
name = "itcast"
allowed_domains = ["qiushibaike.com"]#域名限制
start_urls = ("https://www.qiushibaike.com/text",)#需要爬取的第一个网页
def parse(self, response):#在这个函数中可以对爬取的网页做初步处理
e = response
'''
--------------向pipelines通道传递数据--------------
获取的数据需要是字典的形式itmes={}
使用yeild 字典 的形式 将数据传送给pipelines通道进行处理,示例: yeild itmes
'''
'''
--------------还可以爬取下一页--------------
#下一页地址的爬取:yield scrapy.Request(next_url,callbace=self.parse)
#还可以携带其他参数:method='GET',headers,body,cookies,meta,dont_filter=False(是否去重)
#其中meta是字典,可以在不同的处理函数中传递数据
#callbace回调函数,指明用来处理的函数,在当前文件中参照parse函数进行自定义
'''
'''
--------------数据提取--------------
使用xpath进行网页分析,用.extract()或者extract.first()方法提取最终数据
'''
contents = [div.xpath('string(.)').strip() for div in e.xpath('//div[@class="content"]')]
urls = ['https://www.qiushibaike.com{}'.format(url) for url in e.xpath('//ul[@class="pagination"]/li/a/@href')]
with open('duanzi.txt', 'a', encoding='utf-8') as f:
for data in urls:
f.write(data + '\n')