当前位置: 首页 > news >正文

吉安网站制作公司wordpress的搭建环境

吉安网站制作公司,wordpress的搭建环境,wordpress短视频主题,平面设计优秀作品CrawlSpider 是 Scrapy 框架中一个非常实用的爬虫基类#xff0c;它继承自 Spider 类#xff0c;主要用于实现基于规则的网页爬取。相较于普通的 Spider 类#xff0c;CrawlSpider 可以根据预定义的规则自动跟进页面中的链接#xff0c;从而实现更高效、更灵活的爬取。 Scr… CrawlSpider 是 Scrapy 框架中一个非常实用的爬虫基类它继承自 Spider 类主要用于实现基于规则的网页爬取。相较于普通的 Spider 类CrawlSpider 可以根据预定义的规则自动跟进页面中的链接从而实现更高效、更灵活的爬取。 Scrapy 创建CrawlSpider爬虫 目标网址http://quotes.toscrape.com/ 目标匹配top10标签里面的所有quote 观察其他的URL链接这些都是干扰我们只需要匹配top10里面的链接所有需要编写正则表达式来匹配 1.创建 Scrapy 项目在命令行输入scrapy startproject myproject这里的myproject是项目名。 2.进入项目目录输入cd myproject。 3.创建 CrawlSpider输入scrapy genspider -t crawl myspider example.commyspider是爬虫名example.com是初始爬取的域名。 scrapy genspider -t crawl quotes quotes.toscrape.comimport scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Ruleclass QuotesSpider(CrawlSpider):name quotesallowed_domains [quotes.toscrape.com]start_urls [http://quotes.toscrape.com/]rules (Rule(LinkExtractor(allowr/tag/[a-z]/$), callbackparse_tag, followFalse),)def parse_tag(self, response):tag_url response.urlprint(fExtracted tag URL: {tag_url})rules是一个元组包含一个或多个 Rule 对象每个 Rule 对象定义了一个爬取规则。LinkExtractor(allowr/tag/[a-z]/$)创建一个 LinkExtractor 对象使用正则表达式 r/tag/[a-z]/$ 来提取符合规则的链接。该正则表达式的含义是匹配含/tag/的链接后面跟着一个或多个小写字母最后以 / 结尾的链接。callbackparse_tag当 LinkExtractor 提取到符合规则的链接并访问该链接对应的页面后会调用 parse_tag 方法来处理该页面。followFalse表示不跟进从当前页面提取的符合规则的链接。也就是说爬虫只会处理当前页面中符合规则的链接不会继续深入这些链接对应的页面去提取更多链接。(会自动访问符合规则的链接) 可以看到爬取的就是top10的 相对 URL 和绝对 URL 的差异 Scrapy 的 LinkExtractor 在处理链接时处理的是绝对 URL 而非 HTML 中的相对 URL。要是你的正则表达式是基于相对 URL 来写的就可能会匹配失败。比如HTML 里的相对 URL 是/tag/inspirational/但 Scrapy 处理时会把它变成绝对 URL http://quotes.toscrape.com/tag/inspirational/ 因此 r^/tag/[a-z]/$ 就无法匹配因为绝对 URL 是以 http:// 开头的并非 /tag/。 或者改为这样也是可以的 r^http://quotes.toscrape.com/tag/[a-z]/$ 接下来我们继续跟进将followTrue。进入这些标签页面进一步爬取详情内容 import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Ruleclass QuotesSpider(CrawlSpider):name quotesallowed_domains [quotes.toscrape.com]start_urls [http://quotes.toscrape.com/]rules (Rule(LinkExtractor(allowr/tag/[a-z]/$), callbackparse_tag, followTrue),)def parse_tag(self, response):# 打印当前页面的URLtag_url response.urlprint(fExtracted tag URL: {tag_url})# 提取名言和作者quotes response.css(div.quote)for quote in quotes:text quote.css(span.text::text).get()author quote.css(small.author::text).get()print(fQuote: {text}, Author: {author})翻页逻辑 有的标签类别不止一页数据例如 http://quotes.toscrape.com/tag/love/page/2/可以看到我们只需要匹配next里面链接其他的为干扰。我们可以使用更精确的 CSS 选择器来配合 LinkExtractor import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Ruleclass QuotesSpider(CrawlSpider):name quotesallowed_domains [quotes.toscrape.com]start_urls [http://quotes.toscrape.com/]rules (# 规则1提取所有标签链接Rule(LinkExtractor(allowr/tag/[a-z]/$), callbackparse_tag, followTrue),# 规则2使用CSS选择器提取li标签下的分页链接Rule(LinkExtractor(restrict_cssli.next a), callbackparse_tag, followTrue),)def parse_tag(self, response):# 打印当前页面的URLtag_url response.urlprint(fExtracted tag URL: {tag_url})# 提取名言和作者quotes response.css(div.quote)for quote in quotes:text quote.css(span.text::text).get()author quote.css(small.author::text).get()print(fQuote: {text}, Author: {author})如果 Rule(LinkExtractor(restrict_css‘li.next a’), callback‘parse_tag’, followFalse) 那么爬虫只会处理当前页面中提取到的分页链接对应的页面而不会进一步去跟进这些页面中的其他分页链接所以只能获取到第二页的数据无法获取到第二页之后的页面数据。 还可以使用 XPath 提取 rules (# 规则1提取所有标签链接Rule(LinkExtractor(allowr/tag/[a-z]/$), callbackparse_tag, followTrue),# 规则2使用CSS选择器提取li标签下的分页链接Rule(LinkExtractor(restrict_cssli.next a), callbackparse_tag, followTrue),# 规则3使用XPath提取li标签下的分页链接Rule(LinkExtractor(restrict_xpaths//li[classnext]/a), callbackparse_tag, followTrue),)Scrapy 内部有一个链接去重机制默认使用 scrapy.dupefilters.RFPDupeFilter 来过滤重复的请求。当 LinkExtractor 提取到链接后Scrapy 会先检查这个链接是否已经在请求队列中或者已经被处理过如果是就不会再次发起请求。 规则 2 和规则 3 提取的是相同的由于 Scrapy 的去重机制相同的链接只会被请求和处理一次所以不会因为规则 2 和规则 3 提取到相同的链接而导致 parse_tag 方法被重复调用并打印两次数据。 虽然 Scrapy 会对链接进行去重但如果你的 parse_tag 方法内部存在一些逻辑可能会导致数据重复处理。例如如果你在 parse_tag 方法中对数据进行了一些存储操作并且没有进行去重处理那么可能会出现数据重复存储的情况 LinkExtractor allow参数 字符串列表allow[/tag/love/, /tag/humor/]LinkExtractor 会提取包含 /tag/love/ 或者 /tag/humor/ 的链接 编译好的正则表达式对象 tag_pattern re.compile(r/tag/[a-z]/$) rules (Rule(LinkExtractor(allowtag_pattern), callbackparse_item, followTrue), )空列表或空字符串如果你传入一个空列表 [] 或者空字符串 LinkExtractor 会提取页面中的所有链接。
http://www.pierceye.com/news/932196/

相关文章:

  • 阜蒙县建设镇官方网站那种网站2021
  • 同信.长春网站建设北京网站建设策划
  • 长沙游戏网站开发开发人员公众号
  • 用手机能建网站吗软件商店软件下载
  • 天津自助建站哪个建设网站
  • 西宁市网站建设公司推荐网站全网建设 莱芜
  • 安徽阜阳网站建设公司wordpress网页自适应屏幕大小
  • 上海门户网站的亮点网站开发平台及常用的开发工具
  • 广州h5设计网站公司网站建设从建立服务器开始
  • 如何网站建设全包12306网站多钱做的
  • 阳江北京网站建设中国平面设计在线
  • 上海城乡建设中级职称报名网站合肥网站建设之4个细节要注意事项
  • 洮南网站建设哪家好鞍山信息港招聘信息网
  • 大气手机网站wordpress 添加设置
  • 公司创建网站销售wordpress缩略图支持外链图
  • php网站开发案例教程 dvdwordpress淘宝客自适应模板
  • 做建筑设计网站可以推广的网站有哪些
  • 安徽省建设厅证书查询官方网站关键词优化公司如何选择
  • io游戏网站青岛网站优化排名
  • 怎样建设网站?(怎样注册域名?如何选择主机?网站应有哪些功能模块网站备案可以变更吗
  • 欧美男女直接做的视频网站广告投放跟网站建设一样吗
  • 建网站的流程费用广州比较大的外贸公司
  • wordpress 调用站外api广州优化公司推广
  • 自贡建设专业网站设计企业网站建设专家
  • 重庆潼南网站建设哪家便宜淄博做网站电话
  • 下载官方网站合肥建站公司seo
  • 做网站还是做app好科技部政服务服平台
  • 东阿聊城做网站的公司seo顾问培训
  • 临海高端营销型网站建设地址建设网站有什么要素构成
  • wordpress 照片分享昌平网站建设推广优化seo