Python Scrapy中的POST请求发送和递归爬取

嗨喽,大家好呀~这里是爱看美女的茜茜呐


更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


POST请求发送

重写爬虫应用文件中继承Spider类的 类的里面的start_requests(self)这个方法

Python Scrapy中的POST请求发送和递归爬取_第1张图片

递归爬取

递归爬取解析多页页面数据

  • 需求:将糗事百科所有页码的作者和段子内容数据进行爬取且持久化存储

  • 需求分析:每一个页面对应一个url,则scrapy工程需要对每一个页码对应的url依次发起请求,然后通过对应的解析方法进行作者和段子内容的解析。

  • 实现方案:

    1.将每一个页码对应的url存放到爬虫文件的起始url列表(start_urls)中。(不推荐)

    2.使用Request方法手动发起请求。(推荐)

代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# -*- coding: utf-8 -*-
import scrapy
from qiushibaike.items import oiushibaikeItem
# scrapy.http import Request
class Qiushispider(scrapy.Spider):
name = 'qiushi"
allowed domains = www.giushibaike .com'
start urls = '***/text/
#爬取多页
pageNum = 1 #起始页码
url ="-*****/text/page/%s/#每页的url
def parse(selfresponse):
div list=response.xpath("//*[@id="content-left"]/div')
for div in div list:
#//*[@id="qiushi tag 120996995"]/div[1]/a[2]/h2
author=div.xpath(".//div[@class="author clearfix"]//h2/text()').extract first()
author=author.strip( in')
content=div.xpath(".//div[@class="content"]/span/text()').extract first()
content=content.strip('n')
item-0iushibaikeItem(
item["author' =author
item['content']=content
yield item #提交item到管道进行持久化
#爬取所有页码数据
if self.pageNum <= 13: #一共爬取13(13)
self.pageNum += 1
url = format(self.url % self.pageNum)
#递归爬取数据:callback参数的值为回调函数(将ur请求后,得到的相应数据维进G折 het/ 8682860
yield scrapy.Request(url=url,callback=self.parse)
尾语

感谢你观看我的文章呐~本次航班到这里就结束啦

希望本篇文章有对你带来帮助 ,有学习到一点知识~

躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀

你可能感兴趣的:(python,python,scrapy,开发语言,pycharm)