实现python爬取房天下网站所有城市的二手房信息
一、相关知识
- BeautifulSoup4使用
- python将信息写入csv
import csv
with open("11.csv","w") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["a","b","c"])
writer.writerows([[1,1,1],[2,2,2],[3,3,3]])
二、目标
要求爬取房天下各大城市的二手房信息(www.fang.com)
需爬取所有城市的二手房信息,并存在csv文件中,可以所有数据放在一个文件中,但要记录是哪个省,哪个城市。也可以每个城市的数据放在一个csv文件中。要求爬取每个房源信息包括标题、面积、价格、地址等信息。
三、实现思路
1.准备工作
获取网址并解析
- 分析房天下各城市各页的网址,得出大部分城市某页的网址为 https://城市.esf.fang.com/?i=30+页数
- 解析网页为文本:
def response(url, headers):
html = requests.get(url=url, headers=headers)
html.encoding = html.apparent_encoding
return html.text
2.获取所有城市及对应网址
解析该网页代码,获取各城市名及链接,并存到列表
3.遍历城市,获取所需信息
- 先获取每个城市的页数,然后每个城市每页依次解析
- 通过f12查看网页源代码,分析所需信息
4.将分解的信息存到csv中
四、完整代码
# -*- coding:utf-8 -*-
import requests
from lxml import etree
import re
import csv
from bs4 import BeautifulSoup
from pyasn1.compat.octets import null
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}
def response(url