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之集合的关系
Sep 24 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
Numpy 多维数据数组的实现
Jun 18 Python
Python读取yaml文件的详细教程
Jul 21 Python
python 5个实用的技巧
Sep 27 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提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
短信提示使用 特效
2007/01/19 Javascript
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
vuejs如何配置less
2017/04/25 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
python僵尸进程产生的原因
2017/07/21 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Python接收手机短信的代码整理
2020/08/02 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
高三自我鉴定
2013/10/23 职场文书
入团者的自我评价分享
2013/12/02 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
家长对老师的评语
2014/04/18 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
反腐倡廉观后感
2015/06/08 职场文书
致运动员的广播稿
2015/08/19 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
一篇文章学会Vue中间件管道
2021/06/20 Vue.js