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


Posted in Python onJanuary 22, 2015

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

比如,你想采集标题中包含“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))
Python 相关文章推荐
python将ip地址转换成整数的方法
Mar 17 Python
python实现定时同步本机与北京时间的方法
Mar 24 Python
Django中几种重定向方法
Apr 28 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
wxpython实现图书管理系统
Mar 12 Python
对numpy中shape的深入理解
Jun 15 Python
python 以16进制打印输出的方法
Jul 09 Python
python中单例常用的几种实现方法总结
Oct 13 Python
pyqt5移动鼠标显示坐标的方法
Jun 21 Python
python 实现按对象传值
Dec 26 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 #Python
Python实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 #Python
python中实现php的var_dump函数功能
Jan 21 #Python
Python实现获取网站PR及百度权重
Jan 21 #Python
Python实现抓取页面上链接的简单爬虫分享
Jan 21 #Python
Python中多线程及程序锁浅析
Jan 21 #Python
Python实现的多线程端口扫描工具分享
Jan 21 #Python
You might like
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
php查看session内容的函数
2008/08/27 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
css图片自适应大小
2007/11/28 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
python随机模块random使用方法详解
2020/02/14 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
宿舍保安职务说明书
2014/02/25 职场文书
节约用水的口号
2014/06/20 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android