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中的元组与逻辑运算符
Oct 13 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
Jul 13 Python
Python字符串拼接六种方法介绍
Dec 18 Python
python测试mysql写入性能完整实例
Jan 18 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
Python任务自动化工具tox使用教程
Mar 17 Python
python 实现任务管理清单案例
Apr 25 Python
Python必须了解的35个关键词
Jul 16 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
python爬取豆瓣电影TOP250数据
May 23 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定义命令空间的几个注意点(推荐)
2016/10/29 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
JS控制网页动态生成任意行列数表格的方法
2015/03/09 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
Python做简单的字符串匹配详解
2017/03/21 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
高中生毕业自我鉴定范文
2013/12/22 职场文书
教师研修随笔感言
2014/01/23 职场文书
销售顾问工作计划书
2014/09/15 职场文书
开除员工通知
2015/04/22 职场文书
植物园观后感
2015/06/11 职场文书
出生证明格式
2015/06/15 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书