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

网站设计大概流程惠城区龙丰街道

网站设计大概流程,惠城区龙丰街道,如何在电商上购物网站,wordpress用户上传资源验证码tip: 超链接对应的文案通常被称为“锚文本”#xff08;anchor text#xff09; 在继承CrawlSpider父类的前提下#xff0c;编写一个 fetch_referer 方法获取当前response.url的父链接和锚文本。 实现逻辑#xff0c;通过一个例子简要说明#xff1a; 如果设置 start_…tip: 超链接对应的文案通常被称为“锚文本”anchor text 在继承CrawlSpider父类的前提下编写一个 fetch_referer 方法获取当前response.url的父链接和锚文本。  实现逻辑通过一个例子简要说明 如果设置 start_urlwww.baidu.com, Rule(LinkExtractor())匹配链接的规则是任何链接。 那么第一个为 response.urlwww.baidu.com假设 www.baidu.com 的response的页面源码存在链接 www.ibaidu.com, www.etbaidu.com那么此时 refere_extract_link {www.baidu.com: [www.ibaidu.com,www.etbaidu.com]}进入for循环判断因为 response.urlwww.baidu.com不匹配list的links [www.ibaidu.com,www.etbaidu.com] 的任何一个所以链接 www.baidu.com 的父链接 referer_url 和 锚文本 referer_url_text 都为None。scrapy CrawlSpider会将links的链接继续提交给下载器访问response.url 重新被赋值为 response.url www.ibaidu.com假设 www.ibaidu.com 的response的页面源码存在链接 www.ibaidu_child.com,www.ibaidu_second.com那么此时 refere_extract_link {www.baidu.com: [www.ibaidu.com,www.etbaidu.com], www.ibaidu.com: [www.ibaidu_child.com,www.ibaidu_second.com]}进入for循环判断因为 response.urlwww.ibaidu.com 匹配list的links [www.ibaidu.com,www.etbaidu.com] 的www.ibaidu.com而该list的key是 www.baidu.com所以链接 www.ibaidu.com 的父链接 referer_url “www.baidu.com”, 锚文本referer_url_text 百度一下你就知道。 其它链接重复步骤3最后把所有链接的父链接和锚文本存储到itme里面。 完整代码 from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule from developer_docs_scrapy.items import DeveloperDocsScrapyItem from helpers.operate_redis import operate_redis# 从redis获取配置 env_config operate_redis().env_redis_config() print(env_config)class DeveloperDocsSpider(CrawlSpider):name env_config[spider_name] # developer-docsallowed_domains [env_config[spider_allowed_domains]] # [org.com]start_urls [env_config[spider_start_urls]] # [https://developer.org.com/docs-service/]# allow: 满足括号中的re表达式的url会被提取如果为空则全部匹配# deny: 满足括号中的re表达式的url不会被提取优先级高于allow# deny要放在同一个linkextrator里面不然其它link规则会爬取deny的链接# 为了过滤非文档中心的链接如网页存在大量的org.com域名的新闻页面所以设置爬取规则# 允许爬取URL包含初始URL的链接如https://developer.org.com/docs-service/search-result/?keywordAPI 包含 https://developer.org.com/docs-service/rules [Rule(LinkExtractor(allow(start_urls), deny()), process_linksdeal_links, callbackparse_item, followTrue),# Rule(LinkExtractor(denyrknowledge)) ]# 从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。或者对获取的url进行修改后再进行请求下载def deal_links(self, links):print(deal_links)for link in links:print(link, link.url, link.text)# 修改link的url# link.url link.url.resplace(,).replace(,)return linksrefere_extract_link {}def parse_item(self, response):item DeveloperDocsScrapyItem()item[url] response.url# 从redis读取需要匹配元素xpath路径# redis读取的是str的列表用eval转成list类型title_xpaths eval(env_config[title_xpaths])for xpath in title_xpaths:# 获取链接访问后的response获取的xpath内容selected_titles response.xpath(xpath).extract()# 如果不为空则存储改内容且退出当前for循环不执行else内容if selected_titles:item[title] selected_titles[0]break# 如果for循环所有list后selected_titles都为空则执行elseelse:item[title] Nonereferer_url, referer_url_text self.fetch_referer(responseresponse)item[referer_url] referer_urlitem[referer_url_text] referer_url_textyield itemdef fetch_referer(self,response):获取跳转到 response.url 的父链接 referer_url 和 父链接的文案 referer_url_text# 获取url访问后的response里面的链接从源码中摘取部分seen set()for rule_index, rule in enumerate(self._rules):links [# 提取 response.url的页面的 链接【链接文案】存储在listlnk.url 【 lnk.text 】 for lnk in rule.link_extractor.extract_links(response) if lnk not in seen]# print(response.url, links)# 把每一个链接访问后的页面获取到的链接组成 key: list 存储到 refere_extract_linkself.refere_extract_link.update({response.url: links})# print(self.refere_extract_link)# 判断每一个response.url是否在refere_extract_link字典的所有links中如果是表示是从链接key访问的页面获取的key是父链接for key,value in self.refere_extract_link.items():for v in value:extract_url v[0:v.find(【)]extract_url_text v[v.find(【)1: v.find(】)]if response.url extract_url:referer_url keyreferer_url_text extract_url_textreturn referer_url, referer_url_textelse:# 如果refere_extract_link字典的所有links都没有满足条件return就会执行elsereturn None, None当迭代对象完成所有迭代后且此时的迭代对象为空时如果存在else子句则执行else子句没有则继续执行后续代码 如果迭代对象因为某种原因如带有break关键字提前退出迭代则else子句不会被执行程序将会直接跳过else子句继续执行后续代码备注逻辑想法记录方便以后可以直接复用
http://www.pierceye.com/news/543137/

相关文章:

  • 一家公司做两个网站百度四川营销中心
  • 网站群 主要功能如何自己创建网页
  • 大量增加告权重网站友链回提升网站权重吗官方网站下载地址
  • 哪家做网站的好google 网站营销
  • jsp网站 iisasp.net做的音乐网站
  • 网站特效怎么做的常州网站建设报价
  • 网站漂浮窗口代码麻涌东莞网站建设
  • icp许可证对网站的要求怎么不用wordpress
  • 四平市城市建设档案馆网站山东省建设业协会网站
  • js网站访问计数ui网上接单网站
  • 西安优秀高端网站建设服务商国外网站阻止国内访问怎么做
  • 招生型网站建设不用js做网站
  • 网站正能量视频不懂我意思吧wordpress readme
  • 石家庄网站seo优化站长工具ip地址
  • 网站运行速度慢一个网站做三页是什么意思
  • wordpress视频网站企炬网站
  • 做数据收集网站租一个服务器多少钱
  • 苏州网站制作推广网站改版 删除栏目
  • 电子商务网站开发需求文档怎样建自己的网站
  • 通过关键词优化提升企业网站个人 可以做网站备案吗
  • 山西百度公司做网站的网站监控的软件怎么做
  • 如何做一份企业网站网站调用微博
  • 电子商务网站的设计工具wordpress中文用户名
  • 网站免费下载软件软件著作权申请多少钱一个
  • 东莞网站视频网站建设和管理规则
  • 内网网站建设方案wordpress 开发主题
  • 咸阳网站建设联系电话星悦做任务网站是
  • 家居网站建设的背景及意义免费域名注册官网
  • 桂林网站制作多少钱排名优化seo
  • 将网站保存怎么做wordpress 后台菜单