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基于twisted实现简单的web服务器
Sep 29 Python
python中assert用法实例分析
Apr 30 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
PyQt5每天必学之事件与信号
Apr 20 Python
Python 串口读写的实现方法
Jun 12 Python
详解Django模版中加载静态文件配置方法
Jul 21 Python
python 有效的括号的实现代码示例
Nov 11 Python
Python实现对adb命令封装
Mar 06 Python
Python使用Matlab命令过程解析
Jun 04 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
Python中的datetime包与time包包和模块详情
Feb 28 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
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
python显示生日是星期几的方法
2015/05/27 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Python 防止死锁的方法
2020/07/29 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
印度服装购物网站:Limeroad
2018/09/26 全球购物
上课说话检讨书大全
2014/01/22 职场文书
展会邀请函范文
2014/01/26 职场文书
小学中秋节活动方案
2014/02/06 职场文书
六年级学生期末评语
2014/12/26 职场文书
党员年度个人总结
2015/02/14 职场文书
技能培训通讯稿
2015/07/18 职场文书
JavaScript文档对象模型DOM
2021/11/20 Javascript