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中获取网页状态码的两个方法
Nov 03 Python
python获取文件扩展名的方法
Jul 06 Python
Python模块文件结构代码详解
Feb 03 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
python模拟鼠标点击和键盘输入的操作
Aug 04 Python
tensorflow 环境变量设置方式
Feb 06 Python
简单的Python人脸识别系统
Jul 14 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 Python
matplotlib grid()设置网格线外观的实现
Feb 22 Python
python基础之匿名函数详解
Apr 21 Python
教你使用Pandas直接核算Excel中快递费用
May 12 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 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学习 字符串课件
2008/06/15 PHP
php Smarty 字符比较代码
2011/02/27 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
自写的一个jQuery圆角插件
2010/10/26 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python设计模式之单例模式实例
2014/04/26 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
使用Python绘制图表大全总结
2017/02/11 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
深入分析python 排序
2020/08/24 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
总务岗位职责
2013/11/19 职场文书
高中生职业规划范文
2014/03/09 职场文书
团队经理竞聘书
2014/03/31 职场文书
求职意向书范文
2014/04/01 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
建议书范文
2015/02/05 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
MyBatis 动态SQL全面详解
2021/10/05 MySQL