python百度收录查询
感谢:网上大佬们贡献的代码
因为想批量查询网站收录情况,所以到处借鉴了一下代码,不足之处请大家多多海涵
查询分两个流程。先搜索得到其网页源码,再正则得到百度链接。然后再根据链接得到真实链接
# -*- coding: utf-8 -*- #!/usr/bin/python import re import thread from bs4 import BeautifulSoup import lxml import requests import re import urllib2 class pc: #变量导入初始化 def __init__(self): pass #http连接函数 def http_link(self,url): get_url='http://www.baidu.com/s?wd=inurl:'+ url data=requests.get(get_url) #强制转码防止乱码 content = data.content.decode('utf-8') #print u'打印源码:',content soup=BeautifulSoup(content,'lxml') all_link=soup.find_all('a') print all_link #存储百度搜索链接 all_link_ss=[] print '开始抓取链接:' for link in all_link: lg=link.get('href') #print lg if lg==None: continue pd=re.compile(r'http://www.baidu.com/link\?url=+.+') lk=pd.findall(lg) if not lk: continue else: print u'匹配后的链接:',lk[0] #获取百度真实链接 try: response = urllib2.urlopen(lk[0]) except urllib2.HTTPError,e: print e.code print e.reason realurl = response.geturl() if realurl !='': all_link_ss.append(realurl) print u'百度真实链接:',realurl if url in all_link_ss: return '已收录' else: return '未' #-----开始调用类------# #组装搜索关键词 s="http://www.baidu.com/s?wd=" s1="inurl:www.cnblogs.com"#此处输入关键词,我这里输入的是博客园官网(关键词属性site,inurl,title等) s2=s+s1 dy=pc() #此处调用类函数(如果想批量查询,可以利用该函数) dy.http_link(s2)