首先,相信绝大部分朋友学习python的目的都是爬虫,虽然还不知道要爬些什么,但光是想想就足够酷炫了.所以,特此记录下我写第一个爬虫的思路以及踩过的坑,希望对其他人有所帮助.
1.配置环境
本人mac+sublimetext,然后业余时间自学python,一个月之后发现sublime可以直接Command+b运行python的时候,心情除了"卧槽"以及脏话之外并不想说别的...
所以 python sublime text 环境配置
2.爬虫
废话少说,直接开始,其实绝大部分人的问题在于不知道从哪里下手.把python的基础知识都看了一遍了,还是对爬虫一点思路都没有.那就按我的思路走一遍吧(默认各位对python基础知识有一定了解了,ps:教程我也没看完,高级特性什么的还没弄清...)
网站分析
首先,我抓取的网站为天天美剧http://www.ttmeiju.com/(追美剧的同学应该知道...),
浏览器打开首页,我这里还是习惯火狐浏览器,因为觉得审查元素确实好用,随便点开一个美剧的链接,这里是越狱http://www.ttmeiju.com/meiju/Prison.Break.html,
够清楚明白吧,下面这些东西就是我们要抓取的!(右键上图中的百度、磁、MI图标,审查元素就可定位到下图)
链接.png
xml解析
python的强大之处就是有各种强大的方法库.这里我们用lxml,安装直接 'pip install lxml'即可,(ps:安装过程可能会出各种各样的问题,公司一次过,家里电脑装了一天...,有时间总结一下,有问题的可以留言)
code time
直接代码:
def analyUrl(): url="http://www.ttmeiju.com/meiju/Prison.Break.html" response=requests.get(url).content selector = html.fromstring(response) hrefs=selector.xpath('//tbody[@id="seedlist"]/tr/td/a/@href') for x in hrefs: print x+'/n'
核心代码 hrefs=selector.xpath('//tbody[@id="seedlist"]/tr/td/a/@href')
对照上图 这句话的意思就是选取 id=seedlist的tbody下的tr下的td下的a的href(有学前段的请纠正一下这里正确的表达方式是什么,感谢!)
结果为下图,"一大波"链接就被抓下来了!!!
这样 最最基础的爬虫就算是完成了,虽然很小,确实是爬虫啊(虫子不就应该小么!!!).
当然,抓下来的链接还存在很多问题,有很多没用的链接,还需要过滤什么的.
其实比较花时间的就是xpath里面的了,可以参考w3c,不过个人认为没必要把整个语法都弄明清,照着一个例子写写应更容易理解些,所以这里有个稍微大一点的(抓取首页所有电影)! 里面有不少xpath的用法,看看应该就能照着写了.
网友评论