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标准日志模块logging的使用方法
Nov 01 Python
python 生成器协程运算实例
Sep 04 Python
Python使用gRPC传输协议教程
Oct 16 Python
详解如何为eclipse安装合适版本的python插件pydev
Nov 04 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
python excel多行合并的方法
Dec 09 Python
python 网络编程要点总结
Jun 18 Python
Python线程池与GIL全局锁实现抽奖小案例
Apr 13 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python将字符串转换成数组的方法
2015/04/29 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
python 检查文件mime类型的方法
2018/12/08 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
委托书范本
2014/04/02 职场文书
协议书模板
2014/04/23 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
学校计划生育责任书
2015/05/09 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
python基础入门之字典和集合
2021/06/13 Python
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis