Python:抓取百度SERP搜索结果页的网站标题信息

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

比如,你想采集标题中包含“58同城”的SERP结果,并过滤包含有“北京”或“厦门”等结果数据。

该Python脚本主要是实现以上功能。

其中,使用BeautifulSoup来解析HTML,可以参考我的另外一篇文章:Windows8下安装BeautifulSoup

代码如下:

__author__='曾是土木人'#-*- coding: utf-8 -*-#采集SERP搜索结果标题importurllib2frombs4importBeautifulSoupimporttime#写文件defWriteFile(fileName,content):try:

fp= file(fileName,"a+")

fp.write(content+"\r")

fp.close()except:pass#获取Html源码defGetHtml(url):try:

req=urllib2.Request(url)

response= urllib2.urlopen(req,None,3)#设置超时时间data = response.read().decode('utf-8','ignore')except:passreturndata#提取搜索结果SERP的标题defFetchTitle(html):try:

soup= BeautifulSoup(''.join(html))foriinsoup.findAll("h3"):

title= i.text.encode("utf-8")

if any(str_ in title for str_ in ("北京","厦门")):

continueelse:PRinttitle

WriteFile("Result.txt",title)except:passkeyWord="58同城"if__name__=="__main__":globalkeyword

start=time.time()foriinrange(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() -startprint('程序运行耗时:%0.2f 秒'%(c))

原文地址:曾是土木人新浪微博:http://weibo.com/cstmr

转载请注明出处:http://www.cnblogs.com/hongfei/p/3764181.html

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航