Python爬虫爬取百度搜索内容代码实例


Posted in Python onJune 05, 2020

这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

搜索引擎用的很频繁,现在利用Python爬虫提取百度搜索内容,同时再进一步提取内容分析就可以简便搜索过程。详细案例如下:

代码如下

# coding=utf8
import urllib2
import string
import urllib
import re
import random
#设置多个user_agents,防止百度限制IP
user_agents = ['Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130406 Firefox/23.0', 
  'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0', 
  'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533+ 
  (KHTML, like Gecko) Element Browser 5.0', 
  'IBM WebExplorer /v0.94', 'Galaxy/1.0 [en] (Mac OS X 10.5.6; U; en)', 
  'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)', 
  'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14', 
  'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) 
  Version/6.0 Mobile/10A5355d Safari/8536.25', 
  'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) 
  Chrome/28.0.1468.0 Safari/537.36', 
  'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; TheWorld)']
def baidu_search(keyword,pn):
 p= {'wd': keyword} 
 res=urllib2.urlopen(("http://www.baidu.com/s?"+urllib.urlencode(p)+"&pn={0}&cl=3&rn=100").format(pn))
 html=res.read()
 return html
def getList(regex,text):
 arr = []
 res = re.findall(regex, text)
 if res:
  for r in res:
   arr.append(r)
 return arr
def getMatch(regex,text):
 res = re.findall(regex, text)
 if res:
  return res[0]
 return ""
def clearTag(text):
 p = re.compile(u'<[^>]+>')
 retval = p.sub("",text)
 return retval
def geturl(keyword):
 for page in range(10):
  pn=page*100+1
  html = baidu_search(keyword,pn)
  content = unicode(html, 'utf-8','ignore')
  arrList = getList(u"<table.*?class="result".*?>.*?</a>", content)
  for item in arrList:
   regex = u"<h3.*?class="t".*?><a.*?href="(.*?)" rel="external nofollow" rel="external nofollow" .*?>(.*?)</a>"
   link = getMatch(regex,item)
   url = link[0]
   #获取标题
   #title = clearTag(link[1]).encode('utf8')
   try:
    domain=urllib2.Request(url)
    r=random.randint(0,11)
    domain.add_header('User-agent', user_agents[r])
    domain.add_header('connection','keep-alive')
    response=urllib2.urlopen(domain)
    uri=response.geturl()
    print uri
   except:
    continue
if __name__=='__main__':
 geturl('python')</a.*?href="(.*?)" rel="external nofollow" rel="external nofollow" .*?></h3.*?class="t".*?></table.*?class="result".*?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python生成器实现微线程编程的教程
Apr 13 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
Jan 21 Python
Python基础教程之利用期物处理并发
Mar 29 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
Python3.4解释器用法简单示例
Mar 22 Python
python实现串口自动触发工作的示例
Jul 02 Python
python线程定时器Timer实现原理解析
Nov 30 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python爬虫scrapy图书分类实例讲解
Nov 23 Python
Python读取图像并显示灰度图的实现
Dec 01 Python
详解python网络进程
Jun 15 Python
python3读取autocad图形文件.py实例
Jun 05 #Python
Python实现加密接口测试方法步骤详解
Jun 05 #Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 #Python
python 引用传递和值传递详解(实参,形参)
Jun 05 #Python
Python检测端口IP字符串是否合法
Jun 05 #Python
Python如何基于Tesseract实现识别文字功能
Jun 05 #Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 #Python
You might like
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php curl发送请求实例方法
2019/08/01 PHP
jquery cookie插件代码类
2009/05/26 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python连接mysql实例分享
2016/10/09 Python
python用户管理系统的实例讲解
2017/12/23 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python是什么 Python的用处
2020/05/26 Python
Python dict的常用方法示例代码
2020/06/23 Python
CSS3中Transform动画属性用法详解
2016/07/04 HTML / CSS
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
Linux面试题LINUX系统类
2015/11/25 面试题
应届生英语教师求职信
2013/11/05 职场文书
计算机相关的自我评价
2014/01/15 职场文书
质量承诺书范文
2014/03/27 职场文书
节约能源标语
2014/06/17 职场文书
音乐教师求职信
2014/06/28 职场文书
redis lua限流算法实现示例
2022/07/15 Redis