| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python中的xpath爬虫实例,新人处女作!!! -> 正文阅读 |
|
[Python知识库]python中的xpath爬虫实例,新人处女作!!! |
首先声明,自己算是小白,还是偏感性女性思维,刚接触python没有多久,所以以下文字中有不专业的地方,请多多指出,不吝赐教。我是学了正则和bs4然后学的xpath,其实我开始并不想做笔记,但是发现自己学完了之后就全忘记了,特意做一下笔记。我着重讲实例。 求点赞、评论、关注!!!!!!可以先看一下xpath的基本逻辑: #xpath解析原理: #环境的安装: #如何实例化一个etree对象 :from lxml import etree #xpath表达式 1.第一个案例:爬取链家的二手房信息,要求能输出二手房页面的二手房标题和价钱--先导入模块,发起网络请求,得到这种二手房列表界面,然后把网页etree对象化,再调用xpath方法
?--注意看xpath里面怎么写的,你看一下网页的源代码,会发现这些二手房的一套信息全都以li标签的形式存储,放在了ul的标签里面?。
--后面我们想获得二手房的名称,我们其实只需要在li标签里面找就可以了,先遍历这些li标签,?在li标签里再次调用这个xpath方法(老实说,其实我也不是很明白为什么能直接调用这个方法,如果你可以解释,记得留言,如果你不会,你可以问问会的,记住就可以了),注意加个' ./ ',这样就表示进入下一级了,然后依次找,就能发现二手房名称在a标签里面,同理找到价格,索引是从1开始。
?--最后进行持久化存储即可,打出这个,就完成了,这个是初级的,也很简单,可以照着做一下。关于持久化存储,代码可以记一下,理解了最好。 2.第二个案例:爬取网站上美女的图片https://pic.netbian.com/4kmeinv/,并且下载到文件夹--同上,先网络请求,然后对请求好的页面进行etree对象实例化,用以调用xpath方法
--其实你会发现代码不是'utf-8',因为会出现乱码,把它换成''gbk试一试 --接着你会发现这些个图片全都独立在li标签里面,又是在ul下面,所以按照之前的操作,先调用xpath方法生成个列表,然后遍历列表元素,然后列表里面再去定位图片的网址(img)(注意是不完整的,你得自己加上‘http’那些,以便后面发起请求)以及图片名称(alt) --其实重点在于,我们还需要发起第二次请求,去得到这个图片的数据。 在遍历下再起发起请求,可以获得图片数据,既然得到了图片的数据内容,知道了图片的名称,接下来就是存储啦。由于图片是二进制格式,所以是content,写入是‘wb’,文本的话就是html,写入是‘w’。存储就是创个文件夹,然后图片保存是通过文件夹的路径+图片名称,然后把图片数据写进去,就成功啦!
?--最后效果是这个亚子 --我也喜欢美女!!!!!!!!!!!!? 3.第三个案例:令我头秃的案例 去站长之家下载免费PPT素材在网址https://sc.chinaz.com/ppt/free.html中下载免费PPT 嗯哼,看到这个,你是不是觉得很简单,没那么难,其实你会发现,涉及到下面3个页面,三次网络请求。看到这里,你也觉得没这么难,于是开开心心打算十分钟搞定。呵呵,幼稚! #1 #2 #3 ? --其实,万变不离其宗,还是一样的方法,然而,实操的时候我遇到很多问题。 --我的思路就是和上面一样的思路,还是调用xpath方法,然后找到这些素材被封装的标签,然后我就找到了下图这个,它其实和上面的ul是同一个功能,所以我把它写下来并且打印了一下,div_list=tree.xpath('//div[@class="ppt-list? masonry"]/div')? ? 结果居然是个空列表,后来问人说是class有空格容易识别不出来,所以干脆从祖宗一代代传下来,这个耽误我好长时间,而且它和别的不一样,就是索引它不认!!!!!!!而且开始到现在我都不知道什么原因,是一步步调试出来的。 ?
--第二次网络请求的确得到了各个简历点进去的详情页,但是加载的不完整,可是足够看源代码了 #文件夹下的样子 #文件夹运行的样子 #看下源代码 ? ?--思路还是一样的呀,再看看上面加载页面的源代码,我再次用xpath定位到‘厦门电信下载’,其实你都不用遍历了,这个直接找到再网络请求就成了。?
--然后就是存储啦,说实话存储是最复杂的,还要调用很麻烦的模块,下载也很慢。你得定义这个函数,实际写代码,这个要定义在前面,因为我发现定义在后面无法调用。这个方法是搜索别人文章看到的,有更好的写法最好。
?总结:OK就到这里了,我可能讲的不够清晰,但是我就是这么理解的了。其实写爬虫我觉得重要的是思路,要有清晰地思路和运用工具的能力,很多时候你发现为什么和书上讲的不一样,这个时候要会调试,尝试去解决问题。 另外,这个内容是我在B站学习了https://www.bilibili.com/video/BV1ha4y1H7sx?p=28?课程后写的,可以听一下老师的讲解,谢谢! 求点赞啊,新人第一篇文章!!!!!!!! ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:05:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |