58同城二手房批量图片爬取
网址: 天津二手房网,天津房产网,天津二手房买卖出售交易信息-天津58同城
需求分析:
通过此需求来练习简单的反反爬策略,模拟浏览器批量发送请求,处理获得的图片数据。
基本的编码流程:
1、指定url
1)首先根据要求,获取需要爬取数据的url
然后进行UA伪装,获取一个浏览器标识(User-Agent),以谷歌为例:右键选择检查(快捷:fn+F12),选择network,随意选择一个请求都可以查看到
2)请求参数的处理
参数为url,data(请求需要的传参),headers(将User-Agent封装在字典中)
2、发起请求
通过requests发送get请求。
3、获取响应数据
响应数据存放在response中,为一组text文件。这样就获得了二手房首页的所有数据的html
4、数据解析
对二手房首页进行分析,每个二手房信息的title其实就是一个超链接。那么我们就可以通过数据解析,找到对应存储详情超链接的位置。
定位到如图位置,就可以运用etree的xpath进行数据解析了。
声明一个etree对象,批量获取每一个二手房的超链接(xpath可以直接右键copy里选择,直接复制过来)
5、 持久化存储
对于这个url序列,循环发送get请求,访问每一个二手房详情界面,然后同理,获取每个详情页面的text响应数据,xpath定位到需要获取的图片/图片的名称上。
注意:xpath获取的是一个对象,需要索引才能获取到对象里的数据。
进行持久化存储:
引入os,创建一个文件夹,将获取的图片/图片名存储在本地即可。获取的图片数据是二进制的(content)
但是爬取十几个图片后就会报错,可能是ip被封了,需要手动验证。等学了代理ip的反反爬机制继续进行完善。
报错: