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实现在每个独立进程中运行一个函数的方法
Apr 23 Python
Python实现的递归神经网络简单示例
Aug 11 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
django 中使用DateTime常用的时间查询方式
Dec 03 Python
Python pandas库中的isnull()详解
Dec 26 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 Python
python实现文件分片上传的接口自动化
Nov 19 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
Python语言内置数据类型
Feb 24 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
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
python实现杨辉三角思路
2017/07/14 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
基于Python绘制个人足迹地图
2020/06/01 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
英文自荐信
2013/12/19 职场文书
大学自我鉴定
2013/12/20 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
公司委托书范本5篇
2014/09/20 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
用Python提取PDF表格的方法
2021/04/11 Python
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫
全新239军机修复记
2022/04/05 无线电