本文实例讲述了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=\"(.*?)\".*?>(.*?)<\/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')
希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍Python实现提取谷歌音乐搜索结果的方法,包括了Python实现提取谷歌音乐搜索结果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现提取谷歌音乐搜索结果的方法。分享给大家供大家参考。具体如下: Python的简单脚本,用于提取谷歌音乐搜索页面中的歌曲信息,包括歌曲名,作者,专辑名,现在链接等,最多只提取10页结果。 希望本文所述对大家的Python程序
本文向大家介绍Python实现抓取百度搜索结果页的网站标题信息,包括了Python实现抓取百度搜索结果页的网站标题信息的使用技巧和注意事项,需要的朋友参考一下 比如,你想采集标题中包含“58同城”的SERP结果,并过滤包含有“北京”或“厦门”等结果数据。 该Python脚本主要是实现以上功能。 其中,使用BeautifulSoup来解析HTML,可以参考我的另外一篇文章:Windows8下安装Be
本文向大家介绍基于Vue.js 2.0实现百度搜索框效果,包括了基于Vue.js 2.0实现百度搜索框效果的使用技巧和注意事项,需要的朋友参考一下 使用Vue.js 2.0 模仿百度搜索框效果,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍JS 实现百度搜索功能,包括了JS 实现百度搜索功能的使用技巧和注意事项,需要的朋友参考一下 今天我们来用JS实现百度搜索功能,下面上代码: HTML部分: CSS层叠样式部分: JS部分: 搜索功能的实现源于百度的 https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd="+otext.value+"&cb=hou
许个愿求求让我过吧 一面 1 自我介绍 2 html 行内元素和块级元素的区别 3 css 盒模型 bfc的应用 4 js es6 var let const区别 一道判断var变量提升的题 事件循环机制 apply,call, bind 5 vue 双向数据绑定 nexttick() 6 计网 cookie session js如何获取cookie websocket和http区别和它的原理 7
一面 *. webscoket、socket.io介绍(项目中用到) *. chatgpt、文心一言的服务器端推送方案有了解过吗 *. 移动端web有经验吗 *. css用的多吗; 我: ?; 讲讲css的优先级 *. cookie, 跨域设置cookie *. HTTP缓存介绍, 强缓存和协商缓存各自的缺点 *. 用过哪些打包工具, rollup和webpack对比 *. 性能优化介绍, 在项目