BeautifulSoup的中文文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
最近学会了python的简单爬虫,就抓取一下链家网的二手房信息小试牛刀~

总结写在前头:

看URL结构→看提取信息的源代码→爬取并存进dataframe→清洗,变成能用的数据→写进CSV
会简单的使用BeautifulSoup库和requests库
爬取某一个网页的某一个信息得知道他的源代码
merge用来粘合两个dataframe
del用来删除dataframe的某一列
str(int)用来将数字转化为字符串,且‘’+‘’用于快速连接字符串
(获取字符串这里仍存在疑问)

1.所用到的库:

import requests
import time   #负责设置每次抓取的休息时间,速度太快会被封IP
from bs4 import BeautifulSoup
import warnings
import pandas as pd

2.了解抓取网页的结构

url:https://gz.lianjia.com/ershoufang/ (第一页)
https://gz.lianjia.com/ershoufang/pg2/ (第二页之后)
gz为城市名
ershoufang(二手房)为众多分区之一
pgX/为显示当前为第几页,网站共显示100页

3.设置头部信息或添加代理

可以防止频繁访问被封IP

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept':'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding':'gzip',
'Connection':'close',
'Referer':'http://www.baidu.com/link?url=_andhfsjjjKRgEWkj7i9cFmYYGsisrnm2A-TN3XZDQXxvGsM9k9ZZSnikW2Yds4s&wd=&eqid=c3435a7d00146bd600000003582bfd1f'
}`

4.网页抓取

for i in range(1,101):if i == 1:i=str(i)a=(url+page+i+'/')  #字符串可以用‘+’连接r=requests.get(url=a,headers=headers)html=r.contentelse:i=str(i)a=(url+page+i+'/')r=requests.get(url=a,headers=headers)html2=r.contenthtml = html + html2#每次间隔1秒time.sleep(1)

5.网页解析

soup=BeautifulSoup(html,html.parser') #用BeautifulSoup对网页进行解析,必须选择哪种解析器,不表明会出错

6.信息提取

下面我们分别对房源的总价,房源信息和关注度三部分进行提取。查看网页的源代码,将符合进行提取

把页面div标签中class=priceInfo的部分提取出来,并使用for循环将其中每个房源的总价数据存在tp中。
`
price=soup.find_all(“div”,”totalPrice”)
tp=[]
for a in price:
totalPrice=a.span.string
tp.append(totalPrice)

房源信息存在hi中
![查看房子信息的标签和class](https://img-blog.csdn.net/20180820203029394?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAwMDUyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

information=soup.find_all(“div”,”houseInfo”)
hi=[]
for i in information:
im=i.get_text()
hi.append(im)

![查看关注信息的便签和class](https://img-blog.csdn.net/2018082020305244?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAwMDUyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)关注度信息存在fi中

follow=soup.find_all(“div”,’followInfo’)
fi=[]
for i in follow:
fo=i.get_text()
fi.append(fo)


6.清洗数据
------将爬取到的信息制作成数据表house=pd.DataFrame({"total":tp,"houseInfo":hi,"follow":fi}) #这里用的是字典

先传到CSV看一下爬取的数据,需要对houseInfo和follow进行分列

```
对房源信息进行分列
house_info_split=pd.DataFrame((x.split('|') for x in house["houseInfo"]),columns=["place",'door_model','area','toward','zhuangxiu','elevator','qita'])
原本观察房源信息数据是应分成6列,但爬取100页数据后出错,原因是有几个房源信息在其中多加了一处“独栋别墅”,见下图

#对关注度信息进行分列
follow_split=pd.DataFrame((i.split("/") for i in house["follow"]),columns=['followers','times','days'])#将数据分列后,将其添加进数据表,并删除多余的列house=pd.merge(house,house_info_split,right_index=True, left_index=True)#merge函数不改变两个传入数据表
house=pd.merge(house,follow_split,right_index=True, left_index=True)
del house["follow"] #删除dataframe某一列的快捷方法
del house['houseInfo']

7.最后,将数据表写进CSV

house.to_csv("lianjiawang.csv",encoding="GBK")

Python爬虫实战:BeautifulSoup库requests库-抓取链家网广州二手房信息相关推荐

  1. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  2. python 爬取链家数据_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  3. Python爬虫三:抓取链家已成交二手房信息(58W数据)

    环境:Windows7+python3.6+Pycharm2017 目标:抓取链家北京地区已成交二手房信息(无需登录),如下图,户型.朝向.成交时间价格等,保存到csv.最后一共抓取约58W数据,程序 ...

  4. Python爬虫攻略(2)Selenium+多线程爬取链家网二手房信息

    申明:本文对爬取的数据仅做学习使用,请勿使用爬取的数据做任何商业活动,侵删 前戏 安装Selenium: pip install selenium 如果下载速度较慢, 推荐使用国内源: pip ins ...

  5. 爬虫,爬取链家网北京二手房信息

    # 链家网二手房信息爬取 import re import time import requests import pandas as pd from bs4 import BeautifulSoup ...

  6. Python爬虫实战(4):抓取淘宝MM照片

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  7. 【爬虫】爬取链家网青城山二手房源信息

    一.项目背景 本项目是用python爬虫来实现爬取链家网青城山的二手房信息,我们小组是针对于在我们成都东软学院周边的二手房信息做一个数据爬取和建表.我们小组做这个项目的背景是因为在不久的将来,我们大学 ...

  8. 基于python多线程和Scrapy爬取链家网房价成交信息

    文章目录 知识背景 Scrapy- spider 爬虫框架 SQLite数据库 python多线程 爬取流程详解 爬取房价信息 封装数据库类,方便多线程操作 数据库插入操作 构建爬虫爬取数据 基于百度 ...

  9. python爬虫——使用bs4爬取链家网的房源信息

    1. 先看效果 2. 进入链家网,这里我选择的是海口市点击跳转到链家网 3. 先看网页的结构,这些房子的信息都在li标签,而li标签再ul标签,所以怎么做大家都懂 4. 代码如下,url的链接大家可以 ...

  10. python爬取链家租房信息_Python爬取链家网上海市租房信息

    使用Python进行上海市租房信息爬取,通过requests + Beautifulsoup对网页内容进行抓取和数据提取. import requests from bs4 import Beauti ...

最新文章

  1. 十四、JavaScript表单中的验证API
  2. mfc 监控文件操作_实战经验:使用CFileDialog实现多个文件选择
  3. CCIE-LAB-第四篇-OSPFv2+SHA384+BFD
  4. java泛型中的E,K,V,T,U,S
  5. Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型
  6. 每秒7亿次请求,阿里新一代数据库如何支撑?
  7. .NET中统一的存储过程调用方法(收藏)
  8. 面试一线互联网大厂?那这道题目你必须得会!
  9. Docker系列(二)Docker安装与启动
  10. 架构师进阶:Linux进程间如何共享内存?
  11. xp系统如可用计算机截图,WinXP系统电脑怎么截图 常见截图方法介绍
  12. Discuz论坛项目架构分析
  13. 得空写的基于web的工作流表单设计器,大家看看怎么样
  14. 通过这些快捷键解决YouTube的“空格键问题”
  15. 学人工智能看什么书?AI入门书籍推荐
  16. 操作系统实验一 添加内核模块
  17. linux脚本中的gt,shell中’-gt’与’’的区别
  18. 下载宝(mt7621) openwrt 挂载sd卡
  19. 安卓视频播放器 一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,仿今日头条 Android视频播放器
  20. EBS 销售订单行单条一次或多次发运确认API(wsh_new_delivery_actions.confirm_delivery)详解

热门文章

  1. 安装了jdk和jre无法打开jar文件(测试过多个jdk版本和win系统,绝对百试百灵)
  2. 通过mtd读写flash_flash的读写与擦除
  3. JavaMail API详解
  4. 基于数字证书的UKEY安全登录
  5. 欧拉项目(python练习)problem 45
  6. java.lang.IllegalStateException报警
  7. cisco 2811路由器详细配置
  8. Oculus消费者版在路上,留给“山寨”VR的时间有多少?
  9. 修复桌面快捷方式箭头图标
  10. Java面试必看的18个开源项目