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 rsa 加密解密
Mar 20 Python
老生常谈Python进阶之装饰器
May 11 Python
python模糊图片过滤的方法
Dec 14 Python
详解python中list的使用
Mar 15 Python
python 杀死自身进程的实现方法
Jul 01 Python
python由已知数组快速生成新数组的方法
Apr 08 Python
Python telnet登陆功能实现代码
Apr 16 Python
jupyter notebook 重装教程
Apr 16 Python
python可以用哪些数据库
Jun 22 Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 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
模仿OSO的论坛(一)
2006/10/09 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
php 类自动载入的方法
2015/06/03 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
javascript计算渐变颜色的实例
2017/09/22 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
Python修改Excel数据的实例代码
2013/11/01 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Python ATM功能实现代码实例
2020/03/19 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
电钳专业个人求职信
2014/01/04 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
岗位聘任书范文
2014/03/29 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
付款委托书范本
2014/10/05 职场文书
红色经典观后感
2015/06/18 职场文书
食品安全主题班会
2015/08/13 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android