我的第一只爬虫:爬取豆瓣读书
- Python
- 2015-01-16
- 5279热度
- 36评论
在YouTube上找到了一个Python爬虫的教程,然后照着做了一下,试着爬取了豆瓣上的一些信息。从下午3点多做到快9点,感觉又学到了不少东西。期间,发现了一个让我很惊讶、高兴的事,python中的字符串似乎是不限制长度的。我尝试了一下使用一千万位的字符串,没有任何问题。这一点,可比Java贴心多了啊。之前用Java写词法分析器的实验时,由于长度限制,用到字符串时就很麻烦。
主要是参考这个网站的教程(就是我在YouTube上看的教程):https://www.thenewboston.com/forum/topic.php?id=1610
这个爬虫的源代码如下:
------------------------------------------------------------------------------------------------------------------------
因评论区某网友提醒,得知豆瓣网站的信息有所变化,已于4月26日上午重写代码。
代码已托管到GitHub:https://github.com/plough/myCrawler/blob/master/doubanBook/book_list_spider.py
若有任何问题请留下评论或者直接与我联系。
py 3 吗
我用的py2。py3应该也能跑吧,那个tutor是用的py3。我用py2,只是字符编码那里有了点问题,开头那几行代码就是解决这个问题的。其他没什么。
从知乎上一路过来,爬虫做聚合内容页面输出不错,可惜我不会编程,要不做个这样的网站吹吹牛也是不错滴,感谢博主。
对,早期的奇虎还有大旗网都是这么做的,只是抓取过来之后给原页面加上IFrame,其实挺没意思的
谢谢支持!编程,只要有兴趣,可以慢慢学嘛。我也是个初学者。
知乎看到了,过来支持一下
谢谢支持!这两天来访的朋友很多,让我受宠若惊。我会好好学习,天天向上的~
博主可否将具体使用方法写下?
在下刚刚接触python,在IDLE上运行无误,但看不到效果,我该怎么办?是我还缺少什么配置吗?
正常情况下,这段代码运行之后,会在源文件所在目录下生成一个“book_list.txt”文件。既然运行无误,相关的模块(BS4)应该已经安装了吧?多检查检查。python推荐这个入门教程:http://learnpythonthehardway.org/book/
为什么我在Windows下运行提示找不到requests模块,是需要自己安装request模块吗
这个模块不是Python自带,需要自己安装的。和bs4一样。
从知乎过来的,是大一的信安新生,感觉大开眼界呢
哈哈,谢谢支持。好好学习~
知乎溜过来的。lz给力,加油!
谢谢支持!
哈哈,我也是知乎观光团的,支持博主。python写爬虫确实很强大。顺便问下,博主这是用的什么显示代码插件。
谢谢!代码插件的参考资料:http://www.wpdaxue.com/wp-syntax.html
可以使用HTML DOM方式,直接读取的..比这个方便多了,你这种方式也是我之前用的..我这二天也要写一个模似人登陆网站的,然后获取页面数据的,和你这类似,稍后好了发来看看..
刚才没仔细看,原来已经用BeautifulSoup了呀.
Kool
Thanks!
看到博主的时钟显示很有趣啊,是人组成的!
哈哈,我也是在别人那里看到,觉得很有趣,就弄了一个。
网站是楼主做的吗? 很棒呀。
以后有空可以交流交流吗? 联系我的邮箱~ 或则扣扣 1957973695
我也准备搞一个技术博客。 你这个可以不用注册就能够留言的,很不错。 但是我怕这样会不会被注入呢~~
测试一下~~嘻嘻
用WordPress做的,比较简单。具体可以参考我的另外一篇文章。
现在豆瓣的网页源代码有所调整,用这个soup.findAll好像抓取不到了。再加上把整个网站的标签合并到一起了。博主能更新一下吗?
你好,爬虫代码已经更新,测试可用!谢谢你提的问题,这次重写,感觉轻松多了,看来这段时间还是有进步哈 ^_^
这样啊……我也就写过这一个爬虫,不知道行不行……过两天试一下。
我这段时间也在学爬虫
知呼观光团到此一游
请问代码里的header是做什么用的,一直有些困惑。我是非计算机的,业余学点爬虫。
伪装成浏览器。你试一下不用 header,应该不能正常获取数据。
博主你有试过爬新浪微博的内容么?这个比豆瓣难多了啊,一直整不明白。
问一下朋友,你的博客这个是用的模板吗,什么写的?
模版,请看网页底部信息。
博主写的很好哦,谢谢分享了
这里有写好的豆瓣采集爬虫,有需要的可是试试
http://www.shenjianshou.cn/index.php?r=market/configDetail&pid=12