感谢:网上大佬们贡献的代码
因为想批量查询网站收录情况,所以到处借鉴了一下代码,不足之处请大家多多海涵
查询分两个流程。先搜索得到其网页源码,再正则得到百度链接。然后再根据链接得到真实链接
# -*- 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)