python爬虫爬取百度搜索结果如何二次爬取

查看: 6994|回复: 225
发一只我一直在用的爬虫——爬取“解闷”动态图的爬虫,绅士不妨留步^=^
马上注册加入鱼C,享用更多服务吧^_^
才可以下载或查看,没有帐号?
本帖最后由 疾风。意破天晴 于
13:56 编辑
因为GIF这种东西似乎从诞生到现在一直挺流行的,所以我今天再来爬上一记^_^
我用爬虫也不是一天两天了,所以应该有资格给新新手们指导一下了:
爬一个页面在我看来就三步,一定位想要的资源,二搞清页面的结构,三理出程序的结构。
第一和第二步做好了,你就能得到爬虫的攀爬路径,然后根据此路径便可做到第三步,届时你的程序就差不多编好了,然后就来到最终的:
& & & & try:
& & & & & & & & run my app
& & & & & & & & break
& & & & except:
& & & & & & & & fix my app
说一下我在刚学爬虫时遇到的问题:
1:& & & & 出现 ModuleNotFoundError: No module named &ooxxooxx&?
& & & & 那么就去pip安装相应的包(其实代码语言排错和静态语言比起来简直太容易了,基本无需Debug,只要你英语过得去,那么根据错误提示一般都能& & & & & & & & & & & &
& & & & 解决问题)
2:& & & & 怎么爬ajax的页面?
& & & & 在当前页面右键审查元素,然后找到Network下的xhr,当有ajax请求时会有记录
3:& & & & 网站网络不稳定,或者有反爬虫机制怎么办?
& & & & 在当前页面右键审查元素,然后把请求头复制一份,每次提取完资源后都time.sleep(second),并且每次尝试抓取做好异常处理(防止中断)并设置& & & & & & & &
& & & & timeout(防止死等),具体的可以参照我的代码。
好了,就这些,你以为爬虫是个什么东西?,看看学校图书馆里面那么一堆的书把你们吓的。。。作一个基本爬虫,这就是你所需要的全部。
游客,如果您要查看本帖隐藏内容请
0.gif (1.31 MB, 下载次数: 1)
20:15 上传
1.gif (1.64 MB, 下载次数: 0)
20:15 上传
2.gif (1.58 MB, 下载次数: 0)
20:16 上传
3.gif (835.62 KB, 下载次数: 0)
20:16 上传
相关网址推荐:
http://www.gifjia.com/category/neihan/(GIF发源地): (这个应该都听过 )
http://www.fulibae.com/ (福利社)(这里面就挺杂的了,寂寞了看看吧 )
have good day^_^
支持楼主!
感谢楼主无私奉献!
放我下车,我的身体一天不如一天了,不能再上车了
让鸡儿放天假
看看看看,嘿嘿嘿
代码,惊现
好东西啊,谢谢楼主分享
路过看看。。
既得福利,又学知识,不错。
From FishC Mobile
不是说不用回复就可以看码
赞一个,围观网址推荐
小甲鱼强烈推荐 /1
新的视频新的面貌,希望大家喜欢 (≧∇≦)ノ
- - - - - - - - - - - -
新课程,新体验!
Powered by当前位置:&>&&>& >
一个爬取近百万数据的Python爬虫
菜鸟独白我写爬虫也有一段时间了,目前还没有爬过百万级的数据.前段时间身体不舒服,冬天是流感的高发季节,一直没有写原创的文章,很多铁杆粉丝也非常关心我,留言询问!非常感谢大家的关心,周末我身体稍微好点了,于是我想自己也没有爬过百万级的数据,要不就试试看爬一个百万数据吧.01百万级的数据1.目标网站的选择这次我选择的是大名鼎鼎的Stackoverflow, 程序员心中有两大圣殿。一个是GitHub里面有很多很多好的库和源码,一个就是Stackoverflow里面有很多大牛帮忙回答问题。我们打开Stackoverflow,然后搜索Python相关的问题:2.页面分析发现一共有88万多个问题,再看一下页面的列表规律,我们按照每页最大显示50个问题,一共有17776页,数据非常大02爬虫的策略目前为止我还没有爬过这么大的数据量,这次看来必须要用神器了scrapy.其实在用神器之前,我们自己写了多并发的多线程池,我测了一下速度还可以,爬取500个数据大概有6秒左右,跟scrapy差不多但是考虑到稳定性和方便扩展性,还是用Scrapy比较方便一些1.页面的爬取scrapy的文章和资料非常多,基础知识这里我就不细细讲解.scrapy的内置功能非常强大,如果玩爬虫scrapy是必须要学习的,使用起来需要按照它的套路,就像乐高玩具一样,一块一块的搭起来就可以.下面我们讲一下几个关键的点:1).页面列表的构建整个的stackoverflow上关于Python的问题页面非常规整,我们可以很容易的构建列表,比如前1000页range(1,1000),range():2).单页面的爬取我们用scrapy genspider产生一个spider文件,我们用这个文件主要爬取页面的内容,每个问题的内容都非常的规则,我们用css非常容易可以提取:我们主要提取问题标题,问题描述,view,vote,answers,提问时间和用户的名字这7个维度2.数据的存储我们需要在items.py里面构建一个存储的数据结构类,把这个7个特征存起来然后在上面的spider类里面把页面解析的数据一一对于存起来item = StackoverflowItem()item['desc'] = descitem['title']=titleitem['view']=viewitem['answer']=answeritem['vote']=voteitem['start'] = startitem['user'] = useryield item03大规模的爬取看起来好像一切顺利,于是我们开始运行爬虫爬取,大概爬取12000个数据左右,IP就会被封掉,大量的429 错误代码会出现.很明显有反爬的策略.这个时候我们的本机IP已经封掉了,这个时候想要继续爬取,有两个办法:第一种办法:用代理IP1).构建一个随机的代理池网上免费的代理IP池很多,我们可以自己本地解析这些网页构建一个代理池,存在数据库里面,也可以访问一个付费的稳定的代理.2).构建一个下载的中间价Scrapy强大之处在于,它给了我们很多接口,扩展性非常好!基本上爬虫的方方面面它都内置了,类似Django真是居家旅行必备。我们只需要几行代码就能搞定不要忘记了在Setting里面配置一下:DOWNLOADER_MIDDLEWARES = {'stackoverflow.middlewares.RandomProxyMiddleware': 543,}但是代理的ip非常不稳定,尤其是免费的。而且代理IP爬取的时间会比本机更慢,毕竟中间加了中转第二种方法:重启猫继续用本机IP一般重启家里的路由器有的时候会换本机的IP地址,因为本机的IP地址爬取的速度是最快,然后放慢爬取的速度,加一些delay.我采用了第二种方法,爬了999页大概49950条数据,并且放慢了速度,大概需要20分钟左右我们一共有近90万的数据需要爬取,如果按照这样的速度去爬取的话,大概需要7个小时才能完全爬取完毕。Scrapy提供了非常完善的异常处理和log分析,即使我们中间爬取出错了,我们依然可以获得已经爬取的数据.当然有条件的话可以放在服务器上去爬取,速度会更快.04尝鲜看一下数据数据长啥样,我们随机拿5条出来看一下,数据比较粗糙没有经过清洗,里面比较有价值的是它的view值和answer值,还有时间和标题目前才近10万条的数据,我们先尝鲜看一下,里面最火的一个问题被998个人围观:结论:百万数据的爬取其上没有我们想象的那么难,只要熟练使用框架,控制爬取的速度,分段爬取还是可以的! 如果有稳定的代理池和高性能的服务器那就更爽啦。等我全部爬取完毕之后,我也想知道Stackoverflow上面关于Python有哪些非常火的问题,大家都在关心Python哪些方面,这近百万的数据时间分布如何,敬请期待吧!
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。
更多问题咨询,欢迎点击!
你可能也喜欢这些
在线客服咨询
在线客服咨询
立即免费领取
请准确填写您的信息Python爬虫入门:如何爬取招聘网站并进行分析_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Python爬虫入门:如何爬取招聘网站并进行分析
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩12页未读,
定制HR最喜欢的简历
你可能喜欢扫一扫体验手机阅读
Python爬虫入门2 | 爬取豆瓣电影信息
<span type="1" blog_id="2107995" userid='
35篇文章,3W+人气,0粉丝
生活不止眼前的苟且!
运维开发全攻略
¥51.0020人订阅
大数据时代的微服务之路
¥51.00504人订阅
<span type="1" blog_id="2107995" userid='Python爬虫入门:爬取豆瓣电影TOP250
时间: 00:35:20
&&&& 阅读:375
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&一个很简单的爬虫。
从这里学习的,解释的挺好的:
分享写这个代码用到了的学习的链接:
其他的一些东西在代码里面有详细注释。
1 # encoding = utf-8
2 import codecs
3 import requests
4 from bs4 import BeautifulSoup
6 # 爬取豆瓣电影TOP250
8 DOWNLOADURL = ‘https://movie.douban.com/top250‘
10 def download_page(url): # 向服务器发送请求下载得到html
headers = {‘User-Agent‘: ‘Mozilla/4.0( MSIE 5.5; Windows NT)‘} # 伪装成浏览器
data = requests.get(url, headers=headers).content
return data # 返回得到的html代码
15 def parse_html(html): # 解析网页
soup = BeautifulSoup(html, ‘lxml‘) # 创建一个BeautifulSoup对象
movie_list_soup = soup.find(‘ol‘, attrs={‘class‘: ‘grid_view‘}) # 定位
name_list = []
for movie_li in movie_list_soup.find_all(‘li‘): # 找到电影名字
detail = movie_li.find(‘div‘, attrs={‘class‘, ‘hd‘})
movie_name = detail.find(‘span‘, attrs={‘class‘, ‘title‘}).getText()
name_list.append(movie_name) # 放到一个list里面
have_next = soup.find(‘span‘, attrs={‘class‘: ‘next‘}).find(‘a‘) # 找下一页的链接
if have_next: # 如果有下一页的链接不为空
return name_list, DOWNLOADURL + have_next[‘href‘] # 返回名字列表还有下一页的URL
return name_list, None # 找不到返回None
31 def main():
url = DOWNLOADURL
# with xxx.open as f 打开xxx之后finally关闭xxx
# codecs方便处理中文编码
with codecs.open(‘douban_movies‘, ‘wb‘, encoding=‘utf-8‘) as fp:
while url:
html = download_page(url)
name_list, url = parse_html(html)
#‘\n‘.join(name_list) : 以‘\n‘为分隔符将name_list所有元素合并成一个新的字符串
#‘{movies}‘.format(movies=‘xxxxx‘) : 即movies = ‘xxxxx‘,将xxxxx按照格式输出
fp.write(u‘{movies}\n‘.format(movies=‘\n‘.join(name_list)))
43 if __name__ == ‘__main__‘:
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/fightfordream/p/6412034.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 python爬虫爬取百度搜索结果 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信