通过开发者工具可以看到,网站是静态网页数据,请求url地址是可以直接获取数据内容的。
url = 'cs.lianjia.com/ershoufang/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
print(response.text)
如果你不知道,返回的数据中是否有你想要的内容,你有复制网页的内容,在pycharm的输出结果中进行搜索查看。
既然网站是静态网页数据,那么就可以直接在开发者工具中 Elements 查看数据在哪
如上图所示,相关的数据内容都包含在 li 标签里面。通过 parsel 解析库,进行解析提取数据就可以了。
selector = parsel.Selector(response.text)
lis = selector.css('.sellListContent li')
for li in lis:
标题
title = li.css('.title a::text').get()
地址
positionInfo = li.css('.positionInfo a::text').getall()
小区
community = positionInfo[0]
地名
address = positionInfo[1]
房子基本信息
houseInfo = li.css('.houseInfo::text').get()
房价
Price = li.css('.totalPrice span::text').get() + '万'
单价
unitPrice = li.css('.unitPrice span::text').get().replace('单价', '')
发布信息
followInfo = li.css('.followInfo::text').get()
dit = {
'标题': title,
'小区': community,
'地名': address,
'房子基本信息': houseInfo,
'房价': Price,
'单价': unitPrice,
'发布信息': followInfo,
}
print(dit)
当我运行的时候发现报错了。
IndexError: list index out of range 超出索引范围了。
遇事不要慌, 取0超出索引范围,说明数据并没有取到,所以我们要看一下 <精装好房...> 这个信息下面那一个是什么情况。
搜索发现,这个中间插入了一条广告,也是li标签里面的,所以做一个简单的判断就好了,它是一个广告并没有标题,判断是否有标题就可以了,有就爬取相关内容,没有就pass掉。
for li in lis:
标题
title = li.css('.title a::text').get()
if title:
地址
positionInfo = li.css('.positionInfo a::text').getall()
小区
community = positionInfo[0]
地名
address = positionInfo[1]
房子基本信息
houseInfo = li.css('.houseInfo::text').get()
房价
Price = li.css('.totalPrice span::text').get() + '万'
单价
unitPrice = li.css('.unitPrice span::text').get().replace('单价', '')
发布信息
followInfo = li.css('.followInfo::text').get()
dit = {
'标题': title,
'小区': community,
'地名': address,
'房子基本信息': houseInfo,
'房价': Price,
'单价': unitPrice,
'发布信息': followInfo,
}
print(dit)
这样就不会报错了。
和爬取豆瓣的电影信息是一样的,使用csv模块,把数据保存到Excel里面
创建文件
f = open('二手房数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['标题', '小区', '地名', '房子基本信息',
'房价', '单价', '发布信息'])
写入表头
csv_writer.writeheader()
''''
''''
csv_writer.writerow(dit)
第二页url地址
url_2 = 'cs.lianjia.com/ershoufang/…'
第三页url地址
url_3 = 'cs.lianjia.com/ershoufang/…'
第四页url地址
url_4 = 'cs.lianjia.com/ershoufang/…'
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。