标签:文件 技术 callback python rom xpath tle sts spi
第三百四十一节,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爬虫文件循环抓取内容—
标签:文件 技术 callback python rom xpath tle sts spi
原文地址:http://www.cnblogs.com/adc8868/p/7286409.html