提示:本次爬取是利用xpath进行,按文章的顺序走就OK的;
前言
一、数据采集的准备
1.观察url规律
2.设定爬取位置和路径(xpath)
二、数据采集
1. 建立存放数据的dataframe
2. 开始爬取
3. 把数据导出成csv表格
总结
这次爬取的网站是房天下网站;
其中包含很多楼盘信息:https://newhouse.fang.com/house/s/b81-b91/
我在网站上进行了一步筛选,即选取北京及北京周边的房源,各位要是想爬取其他城市的房源信息也很简单,改一下url信息即可。
观察到北京及周边地区的房源有很多网页,翻几页就能发现url的规律:
网址就是:https://newhouse.fang.com/house/s/ + b81-b9X + / ;其中X是页码
利用for循环遍历所有网页:
pip 安装fake_useragent库:
fake-useragent可以伪装生成headers请求头中的User Agent值,将爬虫伪装成浏览器正常操作chatgpt写作思路。
导入接下来会用到的包:
'cookie':每次访问网站服务器的时候,服务器都会在本地设置cookie,表明访问者的身份。记得每次使用时,都要按照固定方法人工填入一个 cookie。
'referer':请求参数,标识请求是从哪个页面过来的。
具体更改方法请见链接:
【腾讯文档】'cookie'和 'referer'的更改方法:
只能走链接了,一直审核不过555~
因为爬取数据主要依托于'目标数据所在位置的确定’,所以一定先要搞清楚目标数据的位置(位于div的哪一块);
先发送请求:
我想爬取的数据主要就是:楼盘名称、评论数、房屋面积、详细地址、所在区域、均价 5项数据。
代码已经贴在下面了,具体方法描述还是走个链接:
【腾讯文档】获取具体爬取位置的讲解
此时采集到的数据还包含着:[]方括号、—横杠、“平米”等符号或者单位,所以要对数据进行简单的split处理,把真正需要的数据提取出来:
这里图方便就只爬取了前10页,因为后面的房源就经常少信息,要么没有面积信息,要么没有所在区域。
说实话,本文使用的爬取方法简单而且信息正确,但是存在一些不足,比如面对楼盘的部分信息空缺时,就无法按照null来采集,而是会报错,所以我现有的解决方法就是在循环中人工去设置条件,跳过空缺信息。
我会继续优化这个方法的~
有话要说...