感謝:網上大佬們貢獻的代碼
因為想批量查詢網站收錄情況,所以到處借鑒了一下代碼,不足之處請大家多多海涵
查詢分兩個流程。先搜索得到其網頁源碼,再正則得到百度鏈接。然后再根據鏈接得到真實鏈接
# -*- 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)
