第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—相关的知识,希望对你有一定的参考价值。
第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—
编写spiders爬虫文件循环抓取内容
Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数,
参数:
url=‘url‘
callback=页面处理函数
使用时需要yield Request()
parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接
# -*- coding: utf-8 -*- import scrapy from scrapy.http import Request #导入url返回给下载器的方法 from urllib import parse #导入urllib库里的parse模块 class PachSpider(scrapy.Spider): name = ‘pach‘ allowed_domains = [‘blog.jobbole.com‘] #起始域名 start_urls = [‘http://blog.jobbole.com/all-posts/‘] #起始url def parse(self, response): """ 获取列表页的文章url地址,交给下载器 """ #获取当前页文章url lb_url = response.xpath(‘//a[@class="archive-title"]/@href‘).extract() #获取文章列表url for i in lb_url: # print(parse.urljoin(response.url,i)) #urllib库里的parse模块的urljoin()方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 yield Request(url=parse.urljoin(response.url, i), callback=self.parse_wzhang) #将循环到的文章url添加给下载器,下载后交给parse_wzhang回调函数 #获取下一页列表url,交给下载器,返回给parse函数循环 x_lb_url = response.xpath(‘//a[@class="next page-numbers"]/@href‘).extract() #获取下一页文章列表url if x_lb_url: yield Request(url=parse.urljoin(response.url, x_lb_url[0]), callback=self.parse) #获取到下一页url返回给下载器,回调给parse函数循环进行 def parse_wzhang(self,response): title = response.xpath(‘//div[@class="entry-header"]/h1/text()‘).extract() #获取文章标题 print(title)
以上是关于第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—的主要内容,如果未能解决你的问题,请参考以下文章
第三百四十节,Python分布式爬虫打造搜索引擎Scrapy精讲—css选择器
第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略
第三百四十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—通过downloadmiddleware随机更换user-agent浏览器用户代理
第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索