编写一个爬虫爬取无锡二手房 小区从excel里获取
时间: 2024-02-01 18:04:53 浏览: 41
下面是一个简单的 Scrapy 爬虫,用于从 Excel 文件中获取小区信息,并爬取无锡市的二手房信息。请先确保已经安装好了 pandas 和 openpyxl 库,以便从 Excel 文件中读取数据。
```python
import scrapy
import pandas as pd
class WuxiErshoufangSpider(scrapy.Spider):
name = "wuxi_ershoufang"
allowed_domains = ["lianjia.com"]
def start_requests(self):
# 从 Excel 文件中读取小区名称
df = pd.read_excel("小区信息.xlsx")
xiaoqu_list = df["小区名称"].tolist()
# 构造爬取请求
for xiaoqu in xiaoqu_list:
url = f"https://wuxi.lianjia.com/ershoufang/rs{xiaoqu}/"
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
# 解析二手房信息
ershoufang_list = response.css(".sellListContent li")
for ershoufang in ershoufang_list:
title = ershoufang.css(".title a::text").get()
address = ershoufang.css(".address .houseInfo::text").get()
price = ershoufang.css(".priceInfo .totalPrice::text").get()
yield {
"小区名称": response.url.split("/")[-2].replace("rs", ""),
"标题": title,
"地址": address,
"价格": price
}
```
上面的代码通过读取名为“小区信息.xlsx”的 Excel 文件中的小区名称列表,构造了多个爬取请求。对于每个请求,它会访问链家网站上的二手房页面,并解析页面中的二手房信息。最后,将小区名称、标题、地址和价格等信息保存到字典中并返回。
注意,上面的代码中的 Excel 文件名和列名都需要根据实际情况进行修改。此外,还需要在 Scrapy 项目的 settings.py 文件中添加以下代码,以便正确读取中文:
```python
FEED_EXPORT_ENCODING = 'utf-8-sig'
```