链家二手房爬虫

Posted 河南骏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链家二手房爬虫相关的知识,希望对你有一定的参考价值。

最近在看模拟登陆,找链家二手房爬取来练手,因为技术有限,有些并行化,复杂度,性能方面等不能兼顾,
学习学习学习。
下面贴出源码,有志同道合的高手可以帮忙改进或者提些意见。
#--*-- coding:utf-8 --*--

import pandas
import requests
import re
from bs4 import BeautifulSoup
from fake_useragent import UserAgent


ua=UserAgent()#使用随机header,模拟人类
headers1='User-Agent':'ua.random'#使用随机header
houseary=[]#建立空列表放房屋信息
for j in range(1,101):#爬取页数
    res=requests.get('http://sh.lianjia.com/ershoufang/d/'+str(j),headers=headers1)#爬取拼接域名
    for i in range(0,30):
        info = 
        soup = BeautifulSoup(res.text, 'html.parser')
        url1=soup.select('.clear a')[0+4*i]['href']#选中class=clear下的a标签里的第J个元素的href子域名内容
        q=requests.get(url1)
        soup=BeautifulSoup(q.text,'html.parser')
        s=soup.select('.houseInfo')[0]
        pat='<div.*?mainInfo">(.*?)</div>'
        info['房子格局']=''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.houseInfo')[0]
        pat = '<div.*subInfo">(.*?)</div>'
        info['楼层信息'] = ''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.houseInfo div')[4]
        pat = '<div.*?mainInfo".*?>(.*?)</div>'
        info['朝向'] = ''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.houseInfo div')[5]
        pat = '<div.*?subInfo">(.*?)</div>'
        info['装修情况'] = ''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.houseInfo div')[7]
        pat = '<div.*?mainInfo">(.*?)</div>'
        info['房子面积'] = ''.join(list(re.compile(pat).findall(str(s))))

        s = soup.select('.price')[0]
        pat = '<span.*?total">(.*?)</span>'
        info['房子总价(单位/万)'] = ''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.price')[0]
        pat = '<span.*?unitPriceValue">(.*?)<i>'
        info['单价(元/平米)'] = ''.join(list(re.compile(pat).findall(str(s))))

        s = soup.select('.houseInfo div')[8]
        pat = '<div.*?subInfo">(.*?)</div>'
        info['建楼年份'] = ''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.aroundInfo div')[0]
        pat = '<a.*_blank">(.*?)</a>'
        info['小区名称'] = ''.join(list(re.compile(pat).findall(str(s))))
        s = soup.select('.aroundInfo div')[1]
        pat = '<a.*?>(.*?)</a>'
        info['所在区域'] = ''.join(list(re.compile(pat).findall(str(s))))
        #print(info)
        houseary.append(info)
data=pandas.DataFrame(houseary)
data.to_excel('链家_二手房.xlsx')






以上是关于链家二手房爬虫的主要内容,如果未能解决你的问题,请参考以下文章

链家二手房爬虫

python爬虫:爬取链家深圳全部二手房的详细信息

python 学习 - 爬虫入门练习 爬取链家网二手房信息

Python爬虫之链家二手房数据爬取

链家广州二手房的数据与分析——数据分析2

基于Redis的分布式链家二手房房源数据爬虫系统 毕业设计