刚开始入门PYtyon,把之前学到的部分东西写了一个简单的爬虫,部分代码如下
爬取上海链家二手房的数据.py
发现有点不好,修改一下
import requests
from bs4 import BeautifulSoup
address=()
#headers可以在网页打开F12后查找,具体按ctrl+o,如果不请求回返回403,拒绝访问
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36'
}
#先给csv加上索引
def setcsv():
with open('C:/Users/Administrator/Desktop/lianjia.csv', 'a', encoding='utf-8-sig') as file:
file.write('小区名称, 总价格(万), 单价, 地点, 基础信息, 关注数与发布时间\n')
file.close()
#获取网页源码
def getHTMLtext(url):
html=requests.get(url,headers=headers).content
html=html.decode('utf-8')
return html
#提取数据
def get_data(html):
soup=BeautifulSoup(html,"html.parser")
# 在网页找到数据所在的标签,然后提取出来
infos=soup.find('ul',{
'class':"sellListContent"}).find_all('li')
with open('C:/Users/Administrator/Desktop/lianjia.csv','a',encoding='utf-8-sig') as file:
for i in infos:
#获取每个房子的价格
priceinfo=i.find('div',{
'class':'priceInfo'}).find('div',{
'class':'totalPrice'}).find('span').get_text()
price=i.find('div',{
'class':'priceInfo'}).find('div',{
'class':'unitPrice'}).find('span').get_text()
#获取房子的地址
AD=i.find('div',{
'class':'positionInfo'})
address=AD.find_all('a')[1].string
#小区名称
housename=AD.find_all('a')[0].string
#获取房子的信息
houseInfo=i.find('div',{
'class':'houseInfo'}).get_text()
#获取房子的发布日期与关注人数
followInfo=i.find('d