python爬虫之链家郑州二手房爬取
程序员文章站
2022-04-26 08:06:47
...
今天爬取链家郑州二手房的信息,先写简单一点的,通过链家的过滤标签,共筛选出5家符合条件的房源,只爬取了列表页的内容,后面在爬取稍微复杂一点的页面。
首先分析url及返回的html文本,发现所要的信息就在当前url返回的html文本当中,这就非常简单了。
返回的html文本
既然这样,那提取内容就十分的简单了。
这篇比较简单,就不做过多的阐述了,完整代码如下:
'''
爬取链家二手房信息
类的使用
'''
# 导入第三方库
import requests
import time
import csv
from lxml import etree
from fake_useragent import UserAgent
# 随机请求头
ua = UserAgent()
# 定义链家的类
class LianJia():
# 初始化对象
def __init__(self):
self.start_url = "https://zz.lianjia.com/ershoufang/erqi/tt9l2a2p2/"
self.headers = {"User-Agent": ua.random}
# 定义得到html文本的方法
def get_html(self, url):
time.sleep(1)
html = requests.get(url, headers=self.headers).content.decode()
return html
# 得到解析html文本的方法
def paser_html(self, html):
e = etree.HTML(html)
# 提取房屋名称
room_title = e.xpath('//div[@class="title"]/a/text()')
# 提取房屋的详细信息
house_info = e.xpath('//div[@class="address"]/div[@class="houseInfo"]/text()')
# 提取房屋的价格
price_info = e.xpath('//div[@class="totalPrice"]/span/text()')
price_info = [i + "万" for i in price_info]
# 提取房屋的单价
unit_price = e.xpath('//div[@class="unitPrice"]/span/text()')
# 保存提取的信息到csv
with open("lianjia.csv", 'w', newline='') as f:
cs_writer = csv.writer(f)
cs_writer.writerow(unit_price)
cs_writer.writerow(price_info)
cs_writer.writerow(room_title)
cs_writer.writerow(house_info)
# 定义运行函数,实现主要逻辑
def run(self):
url = self.start_url
html = self.get_html(url)
self.paser_html(html)
# 程序运行接口
if __name__ == '__main__':
LianJia_Spider = LianJia()
LianJia_Spider.run()
# https://blog.csdn.net/api/WritingRank/totalList?username=qq_46292926&page=1&size=10
最后写入了csv文件中,提取结果如下: