Python爬取链家二手房数据写入csv文件
发布时间
阅读量:
阅读量
1.我们常常找到一个网站不知道从何处下手,下面 我们分析一下
首先确定该网站的URL地址。有时你所需的数据可能隐藏在网页源代码之外,并需要进行抓包操作;同时也要注意可能出现的JavaScript加密处理,请逐步完成相关操作。
2.确定url,接下来就是发送请求,得到数据
3.就是解析数据(哪种解析方式方便就用哪种)
4.保存数据

2.接下来就是代码操作
导入要用的模块
#链家
from lxml import etree
import csv
import requests
from tqdm import tqdm #(这个模块只是单纯想加,也可不加,显示进度条的)
开始发送请求
print('信息爬取中:\n')
class HouseParse(object):
#初始化
def __init__(self):
#请求头
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.43'
}
#列表存放数据
self.data_list = []
def Sponsor(self):
#翻页数据
for i in tqdm(range(1,6)):
url = f'https://cs.lianjia.com/ershoufang/rs{i}/'
response = requests.get(url=url, headers=self.headers)
#返回响应码
# print(response.status_code)
3.开始解析数据
#返回响应码
# print(response.status_code)
html = etree.HTML(response.content.decode('utf-8'))
#找到内容所在的li标签下
elements = html.xpath('//div/ul[@class="sellListContent"]/li')
# print(elements)
for element in elements:
#创建字典
dict_ = {}
#标题
dict_['title'] = element.xpath('./div[1]/div[1]/a/text()')[0]
#地址
dict_['flood'] = ''.join([i.strip() for i in element.xpath('./div[1]/div[@class="flood"]//text()')])
#简介
dict_['introduction'] = element.xpath('./div[1]/div[@class="address"]/div/text()')[0]
#价格
dict_['price'] = ''.join([i.strip() for i in element.xpath('./div/div[@class="priceInfo"]/div//text()')])
# print(dict_)
self.data_list.append(dict_)
4.保存我们的数据
self.data_list.append(dict_)
def save_data(self):
#保存数据
with open('lianjia.csv', 'w', encoding='utf-8', newline='')as f:
writer = csv.DictWriter(f, fieldnames=['title', 'flood', 'introduction', 'price'])
writer.writeheader()
writer.writerows(self.data_list)
def main(self):
self.Sponsor()
self.save_data()
if __name__ == '__main__':
house = HouseParse()
house.main()
print('\n爬取成功!')

爬取的内容

全部评论 (0)
还没有任何评论哟~
