朋友说他的站挂了,想知道被收录的页面有多少是死链,于是我就想了一下流程,从Site获得收录数量当然是不精准的,不过也没有更好的地了,真实的收录只有搜索引擎数据库里面才有。。。

查询被收录页面的状态码,流程:获取收录网址 > 解析真实URL > 获取状态码

不过执行起来比较慢,不知道是BeautifulSoup还是 Location 获取真实URL地址这步慢了

#coding:utf-8import urllib2,re,requests
from bs4 import BeautifulSoup as bsdomain = 'www.123.com'    #要查询的域名
page_num = 10 * 10     #第一个数字为要抓取的页数def gethtml(url):headers = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',# 'Accept-Encoding':'gzip, deflate, sdch','Accept-Language':'zh-CN,zh;q=0.8','Cache-Control':'max-age=0','Connection':'keep-alive','Cookie':'BDUSS=ng4UFVyUUpWU2hUR2R3b3hKamtpaE9ocW40LTFZcGdWeDBjbXkzdE83eDJQSE5YQVFBQUFBJCQAAAAAAAAAAAEAAADD3IYSamFjazE1NDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHavS1d2r0tXa; ispeed_lsm=2; PSTM=1465195705; BIDUPSID=2274339847BBF9B1E97DA3ECE6469761; H_WISE_SIDS=102907_106764_106364_101556_100121_102478_102628_106368_103569_106502_106349_106665_106589_104341_106323_104000_104613_104638_106071_106599_106795; BAIDUID=D94A8DE66CF701AB5C3332B1BF883DDC:FG=1; BDSFRCVID=UEusJeC62m80hjJRoxzDhboaBeKaL6vTH6aIa6lTlb9Zx-72yRF7EG0PfOlQpYD-d1GyogKK3gOTH4jP; H_BDCLCKID_SF=fR-foIPbtKvSq5rvKbOEhPCX-fvQh4JXHD7yWCvG3455OR5Jj65Ve58JM46N2bvE3IbaWbjP5lvH8KQC3MA--fF_jxvn2PD8yj-L_KoXLqLbsq0x0-jchh_QWt8LKToxMCOMahkb5h7xOKbF056jK4JKjH0qt5cP; SIGNIN_UC=70a2711cf1d3d9b1a82d2f87d633bd8a02157232777; BD_HOME=1; BD_UPN=12314353; sug=3; sugstore=1; ORIGIN=0; bdime=0; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; H_PS_645EC=a5cfUippkbo0uQPU%2F4QbUFVCqXu4W9g5gr5yrxTnJT10%2FElVEvJBbeyjWJq8QUHgepjd; BD_CK_SAM=1; BDSVRTM=323; H_PS_PSSID=1434_20317_12896_20076_19860_17001_15506_11866; __bsi=16130066511508055252_00_0_I_R_326_0303_C02F_N_I_I_0',# 'Host':'www.baidu.com','Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36',}req = urllib2.Request(url=url,headers=headers)html = urllib2.urlopen(req,timeout = 30).read()return htmldef status(url):    #返回状态码status = requests.get(url).status_codereturn statusstatus_file = open('url_status.txt','a+')
for i in range(10,page_num,10):url = 'https://www.baidu.com/s?wd=site%3A' + domain + '&pn=' + str(i)html = gethtml(url)soup = bs(html,"lxml")for i in soup.select('.c-showurl'):# print i.get('href')urls = i.get('href')# url_list.append(urls)    header = requests.head(urls).headersheader_url = header['location']    #获取真实URLif int(status(header_url)) == 404:print status(header_url),header_url    #打印状态码和真实URLstatus_file.write(str(status(header_url)) + ' ' + header_url + '\n')    #获取的状态码和链接写入文件
status_file.close()
#获取状态码函数

借鉴的代码段

#coding: utf-8
import sys
import urllib
import urllib2
from BeautifulSoup import BeautifulSoupquestion_word = "吃货 程序员"
url = "http://www.baidu.com/s?wd=" + urllib.quote(question_word.decode(sys.stdin.encoding).encode('gbk'))
htmlpage = urllib2.urlopen(url).read()
soup = BeautifulSoup(htmlpage)
print len(soup.findAll("table", {"class": "result"}))
for result_table in soup.findAll("table", {"class": "result"}):a_click = result_table.find("a")print "-----标题----\n" + a_click.renderContents()#标题print "----链接----\n" + str(a_click.get("href"))#链接print "----描述----\n" + result_table.find("div", {"class": "c-abstract"}).renderContents()#描述print

转载于:https://www.cnblogs.com/wuzhi-seo/p/5583139.html

SEO工具箱:查询被收录页面中的死链接相关推荐

  1. Vue报错:Unknown custom element: router-view - did you register the component correctly页面中不显示链接

    Vue报错:Unknown custom element: router-view - did you register the component correctly vue-router应用到组件 ...

  2. 如何用百度统计页面中多个链接的pvuv,并且页面还不需要跳转

    如何用百度统计页面中多个链接的pvuv,并且页面还不需要跳转 铁子,我只想说去搜-->百度统计的[事件跟踪]{https://tongji.baidu.com/open/api/more?p=g ...

  3. 使用mshtml为页面中的超级链接添加Click事件 - 蜡人张 - 博客园

    导读: 使用mshtml为页面中的超级链接添加Click事件 在使用mshtml操作HTML页面时可能遇到要为页面的超级链接添加Click事件的操作,可以用下面的代码来完成: foreach(msht ...

  4. 搜狗SEO工具批量查询搜狗收录页面

    搜狗收录是指,搜狗搜索引擎将你的网页,放入自己的数据库.这样用户就可以在搜狗搜索引擎的时候,就可以通过自然流量搜索到你,并且产生询盘.订单等目的.在过去的几年,也就是搜狗缺数据的时候,你的搜狗收录是越 ...

  5. 给页面中的所有链接新窗口中打开

    在head标签里加<base target="_blank">,这样页面中所有的a链接都是新窗口中打开了.. 转载于:https://www.cnblogs.com/w ...

  6. HTML_页面中的超级链接

    超级链接定义: 超级链接又称为"超文本链接",其在本质上属于一个网页的一部分,它是一种允许我们同其他网页或站点之间进行连接的元素.各个网页链接在一起后,才能真正构成一个网站.所谓的 ...

  7. 【关联字段如何在列表中显示】查询车间列表页面中,显示关联的公司(company)字段

    车间列表显示的隶属公司字段是company_id,该字段是公司表中的主键. 如何修改,让它显示公司表中的 company_name,而不是显示company_id. 这个功能,需要作两表的关联查询,查 ...

  8. base href= php,如何正确定义项目下的base href(页面中所有相对链接的基准URL)...

    /** * ThinkSNS 版本,太过严密和可移植性,很多基本用不到,参考之 */ echo ' '; echo PHP_SAPI,' ';//先查看web服务器和php之间的接口类型 //prin ...

  9. 在a标签中写ajax,ajax请求后的数据渲染到页面中,a链接失效

    ¥ ¥ 点击购买 利用template 渲染后的数据 为什么a链接点击无法跳转 使用mui框架 在手机上测试 css样式 less写的 ul { li { float: left; width: ~& ...

最新文章

  1. 剖析Vue原理实现双向绑定MVVM
  2. HDU 5253 最小生成树(kruskal)+ 并查集
  3. python编程优化_掌握六大技巧,让python编程健步如飞!
  4. java单链表存储结构_Java数据结构——单链表
  5. angular 指令渲染_Angular 组件交互 ngOnChanges 监听某一属性值变更
  6. Go语言的线程模型-Goroutine机制
  7. fatal: Authentication failed for又不弹出用户名和密码 解决办法
  8. SPSS26中文免费版下载和安装教程
  9. HuaWei ❀ 双协议栈
  10. POST http://localhost:8080/admin/getPageDiseaseList net::ERR_INCOMPLETE_CHUNKED_
  11. 腾讯前端面试经验(一)
  12. 港科夜闻|李嘉诚向香港科大等不同的院校捐款港币1.7亿元
  13. sql部分注入方式的学习
  14. 初二因式分解奥数竞赛题_(完整)初中数学竞赛因式分解专题
  15. Android10支持volte,Nemo_LG V35 安卓10.0解锁Volte(联通、电信、移动)教程_Nemo社区_LinkNemo_关于分享和探索的好地方...
  16. 金色传说:SAP-ABAP-VK11/VK12/VK13保存时增强
  17. FPGA开发技巧:Modelsim仿真.do文件详细解析 原创 特权同学
  18. 2023互联网行业发展趋势前景分析
  19. CS231n关于Python使用教程翻译
  20. 360安全卫士从奇虎剥离 新公司筹资3.6亿元

热门文章

  1. 新代系统编程教学_人之初线上教学——三轴智能点胶机控制系统,带你轻轻松松学编程!...
  2. 国产 工程机械控制器SPC-SFMC-X2424A
  3. 【文献阅读】数据挖掘技术在制冷空调行业的应用
  4. VC++6.0安装(解决win10,win11无法打开)
  5. element-ui查看大图
  6. 如何把int数组中的相同元素,从数组中删除。
  7. enternet.exe
  8. 解决网页版网易云别人歌单只能听二十首
  9. Linux技巧(二):Linux sort命令深入解析 | sort -k M.m,N.n 命令详解
  10. 商标取名,你学会了吗?