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中装饰器的使用
Jul 12 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
Python中的集合介绍
Jan 28 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
用python打印1~20的整数实例讲解
Jul 01 Python
python区块及区块链的开发详解
Jul 03 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python函数基本使用原理详解
Mar 19 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
windows上彻底删除jupyter notebook的实现
Apr 13 Python
python实现126邮箱发送邮件
May 20 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后台程序与Javascript的两种交互方式
2009/10/25 PHP
php 日期时间处理函数小结
2009/12/18 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
javascript事件问题
2009/09/05 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
财政局长自荐信范文
2013/12/22 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
我的理想演讲稿
2014/04/30 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
综合办公室岗位职责
2015/04/11 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书