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的Tornado框架的HTTP客户端的教程
Apr 24 Python
python2.7的编码问题与解决方法
Oct 04 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
利用python批量修改word文件名的方法示例
Oct 17 Python
python3 flask实现文件上传功能
Mar 20 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
Django用户认证系统 组与权限解析
Aug 02 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
在django中查询获取数据,get, filter,all(),values()操作
Aug 09 Python
如何利用Python 进行边缘检测
Oct 14 Python
如何利用Python实现一个论文降重工具
Jul 09 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
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
thinkPHP框架实现的简单计算器示例
2018/12/07 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
详解JavaScript中的坐标和距离
2019/05/27 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
python生成器的使用方法
2013/11/21 Python
python数组过滤实现方法
2015/07/27 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
速比涛英国官网:Speedo英国
2019/07/15 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
JAVA高级程序员面试题
2013/09/06 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
公司年会晚宴演讲稿
2014/01/06 职场文书
市场拓展计划书
2014/05/03 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2014年度安全工作总结
2014/12/04 职场文书
优秀党支部申报材料
2014/12/24 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
mysqldump进行数据备份详解
2022/07/15 MySQL