您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/2/19 14:36:15发布30次查看
比如,你想采集标题中包含“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))
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product