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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
轻松实现python搭建微信公众平台
Feb 16 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
python编程羊车门问题代码示例
Oct 25 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
python3将变量输入的简单实例
Aug 19 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 Python
pandas针对excel处理的实现
Jan 15 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
JavaScript 高效运行代码分析
2010/03/18 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python求pi的方法
2014/10/08 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
劳资员岗位职责
2013/11/11 职场文书
心理健康课教学反思
2014/02/13 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
房产协议书范本
2014/10/18 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
Python+Appium新手教程
2021/04/17 Python
Python测试框架pytest高阶用法全面详解
2022/06/01 Python