使用Scrapy框架的好处是不用考虑怎么请求,怎么解析和提取数据,只要按照配置文件写一个爬虫就够了,关键就是写解析文件的代码。
爬取小说网站的关键是网页页面链接的提取和内容解析。如果只是按照正常的方法去爬取的话,会发现爬出来的内容是乱序的,原因也就不解说了。
那么怎么解决这个问题呢,就是定义一个变量去做章节定位,然后按照章节的顺序把数据提取出来。
注意:在蜘蛛程序里面重写close()方法:在爬完后,按顺序索引写入文本文件~~~
代码如下:
#爬取小说
import scrapy
#定义一个全局变量:文件名;页面连接;页数
FILE_NAME = "d://小说.txt"
PAGE_URL = 172939
PAGE_NUM = 8
wenzhang = dict()
item_list = []
class SkbaSpider(scrapy.Spider):
name = 'skba'
allowed_domains = ['*.com']
def start_requests(self):
page = PAGE_NUM+1
for i in range(1,page):
url = f'https://www.**.com/indexlist/{PAGE_URL}/{i}/'
yield scrapy.Request(url = url,cb_kwargs={'title_i':i})
def parse(self, response,**kwargs):
i=kwargs['title_