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中的rfind()方法使用详解
May 19 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
Django中使用MySQL5.5的教程
Dec 18 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
Python计算机视觉里的IOU计算实例
Jan 17 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
Python常用特殊方法实例总结
2019/03/22 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
保健品市场营销方案
2014/03/31 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
2015感人爱情寄语
2015/02/26 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL