立即学习:https://edu.csdn.net/course/play/6861/341445?utm_source=blogtoedu
爬虫抓取练习 -房产信息抓取
import requests
import bs4
import pandas as pd
# 链家网
url = r'https://sh.lianjia.com/ershoufang/pudong/pg1/'
#heads = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36'}
#搜房网
#url = r'https://wuhan.esf.fang.com/'
#response = requests.get(url,headers = heads)
response = requests.get(url)
soup = bs4.BeautifulSoup(response.text)
soup.findAll(name = 'a',attrs ={'data-el':'region'})
name = [i.text.strip() for i in soup.findAll(name = 'a',attrs ={'data-el':'region'})]
housInfo = [i.text.split('|')[0].strip() for i in soup.findAll(name = 'div',attrs ={'class':'houseInfo'})]
size = [float(i.text.split('|')[1].strip()[:-2]) for i in soup.findAll(name = 'div',attrs ={'class':'houseInfo'})]
direction = [i.text.split('|')[2].strip() for i in soup.findAll(name = 'div',attrs ={'class':'houseInfo'})]
zhuangxiu = [i.text.split('|')[3].strip() for i in soup.findAll(name = 'div',attrs ={'class':'houseInfo'})]
fool = [i.text.split('|')[4].strip() for i in soup.findAll(name = 'div',attrs ={'class':'houseInfo'})]
year = [i.text.split('|')[5].strip() for i in soup.findAll(name = 'div',attrs ={'class':'houseInfo'})]
totalPrice = [float(i.text[:-1]) for i in soup.findAll(name = 'div',attrs ={'class':'totalPrice'})]
unitPrice = [int(i.text[2:-4]) for i in soup.findAll(name = 'div',attrs ={'class':'unitPrice'})]
pd.DataFrame({'name':name,'housInfo':housInfo,'size':size,'direction':direction,'zhuangxiu':zhuangxiu,'fool':fool,'year':year,'totalPrice':totalPrice,'unitPrice':unitPrice})