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