当前位置: 首页 > 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/584394/

相关文章:

  • php 手机网站开发手机端网站开发框架
  • 苏州电信网站备案浙江搜索引擎优化
  • 黄岛网站建设哪家好市体育局网站 两学一做
  • 上海建设银行网站转账记录吗外国网站做问卷调查挣钱
  • 深圳做购物网站十堰网络销售
  • 郑州企业网站优化多少钱百度竞价排名价格
  • js特效做的好的网站什么专业是做网站
  • 淄川响应式网站建设网站在国内服务器在国外
  • 施工企业市场经营工作思路及措施个人如何优化网站有哪些方法
  • 怎么做一个盈利网站义乌创博网络科技有限公司
  • 学校网站建设代码不重名的建筑公司名字
  • 网站开发模块的需求海外销售平台有哪些
  • 前端和后端的区别工资郑州网站优化怎样做
  • 小程序模板平台有哪些网站优化包括哪些内容
  • 免费建网站的好的移动端网站模板下载
  • 青岛网站优化排名视频源网站怎么做
  • 做网站找我二级学院网站建设方案
  • 知名网站建设公司 北京近期网络营销的热点事件
  • 网站开发产品经理网站例子
  • 动态静态结合网站网站做404是什么意思
  • 注册域名的网站网站建设的具体步骤
  • 行业网站分类自建站排名
  • 网站备案 登陆安徽省住房和城乡建设厅网站领域
  • 做个网站需要多少钱.网站建设合同注意事项
  • 中国诚信建设网站在线代码生成器
  • 长沙企业网站建设团队目前网络最好的挣钱平台
  • 国家建设工程安全质量监督网站友情链接网
  • 适合html初学者做的网站中卫网站推广软件
  • 一个vps主机放两个网站 速度怎么做发卡网站
  • 海米云网站建设网站开发 去哪里找页面