貌似学习python就绕不过爬虫,今天看了很多资料,各式各样的爬虫,各种尝试,最后还是只能搞定入门级的,嗯,一步步来吧……
import requests from lxml import html url='https://music.douban.com/' #需要爬的网址
page=requests.Session().get(url) tree=html.fromstring(page.text)
result=tree.xpath('//tr//a/text()') #需要获取的数据
result1=tree.xpath('//tr//a/@href') result2=tree.xpath('//tr[last()]//a/@href')
print(result) print(result1) print(result2)
我们爬取一下豆瓣音乐专区,其中url便是我们要爬取的网址,而tree.xpath()中的内容便是该网址中我们要获取的数据,显而易见,该程序爬取了三部分内容,//tr//a/text()便是需要抓取内容的路径,意思是所有标签下的tr标签的所有a标签的文本内容,是不是有点绕口,其实这就是一个相对路径,注意一个‘/’和两个‘/’的区别,可以分别理解成绝对路径和“所有”~~
第二个爬取的内容为a标签的href属性值,第三个为最后一个tr标签下的所有a标签的href属性值。
看结果吧:
看一下豆瓣音乐要爬取的部分主页:
查看下源码:
我们可以看到清晰的路径~~~以下是最后一个tr标签的内容:
有个很纳闷的事儿,大家也注意到了,抓取的内容多了个“豆瓣摄影”,href中也有其链接,打开之后是这个样子的:
然而在原网页中并没有找到这一部分,不知道藏哪里了。。
最后看一下各元素值信息:
接下来搞一下高档次的爬虫,这个还是很有意思的……
热门工具 换一换