比如,你想采集標題中包含“58同城”的SERP結果,并過濾包含有“北京”或“廈門”等結果數據。
該Python腳本主要是實現以上功能。
其中,使用BeautifulSoup來解析HTML,可以參考我的另外一篇文章:Windows8下安裝BeautifulSoup
代碼如下:
__author__ = '曾是土木人'
# -*- coding: utf-8 -*-
#采集SERP搜索結果標題
import urllib2
from bs4 import BeautifulSoup
import time
#寫文件
def WriteFile(fileName,content):
??? try:
??????? fp = file(fileName,"a+")
??????? fp.write(content + "\r")
??????? fp.close()
??? except:
??????? pass
#獲取Html源碼
def GetHtml(url):
??? try:
??????? req = urllib2.Request(url)
??????? response= urllib2.urlopen(req,None,3)#設置超時時間
??????? data??? = response.read().decode('utf-8','ignore')
??? except:pass
??? return data
#提取搜索結果SERP的標題
def FetchTitle(html):
??? try:
??????? soup = BeautifulSoup(''.join(html))
??????? for i in soup.findAll("h3"):
??????????? title = i.text.encode("utf-8")
if any(str_ in title for str_ in ("北京","廈門")):
? continue
??????????? else:
??????????????? print title
??????????? WriteFile("Result.txt",title)
??? except:
??????? pass
keyword = "58同城"
if __name__ == "__main__":
??? global keyword
??? start = time.time()
??? for i in range(0,8):
??????? url = "http://www.baidu.com/s?wd=intitle:"+keyword+"&rn=100&pn="+str(i*100)
??????? html = GetHtml(url)
??????? FetchTitle(html)
??????? time.sleep(1)
??? c = time.time() - start
??? print('程序運行耗時:%0.2f 秒'%(c))
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
