刚学习了python,中途遇到很多问题,查了很多资料,最关键的就是要善于调试,div信息一定不要找错,下面就是我爬取租房信息的代码和运行结果:

链家的房租网站

两个导入的包

1.requests 用来过去网页内容

2.BeautifulSoup

import time

import pymssql

import requests

from bs4 import BeautifulSoup
#https://bj.lianjia.com/zufan

完整代码如下:

import requests
import uuid
import time
from bs4 import BeautifulSoup
from src.request import send as send
from src.database import database as database

def requestHtmlData() :

conn = database.initDataConnect()url = "https://bj.lianjia.com/zufang/pg{0}/#contentList"headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.43'
}
i = 1;
while(1==1):rurl = url.replace("{0}",str(i))print("请求地址:"+rurl)i+=1if(i>100):i=1resp = requests.get(rurl,headers=headers)#print(resp.text)  #网页内容 文本#print(resp.content.decode('utf-8'))   #网页内容  二进制html=resp.textsoup =BeautifulSoup(html,'html.parser')#解析#print (soup)infos = soup.findAll(class_='content__list--item')#print(infos)for info in infos:try:data_house_code = info.attrs['data-house_code']name = info.find(class_='content__list--item--aside').attrs['title']price = info.find(class_='content__list--item--main').find(class_='content__list--item-price').find('em').get_text();area = info.find(class_='content__list--item--main').find(class_='content__list--item--des').a.get_text();addresses = info.find(class_='content__list--item--main').find(class_='content__list--item--des').findAll('a');address = addresses[0].get_text()+'-'+addresses[1].get_text()+'-'+addresses[2].get_text()tags = info.find(class_='content__list--item--main').find(class_='content__list--item--bottom').findAll('i');tagStr = ''for tag in tags:if(tagStr!='') :tagStr += '-'tagStr += tag.get_text()deleteSql = "delete from building_data where id = '"+data_house_code+"';"database.execSql(deleteSql)insertSql = "INSERT INTO building_data (id, name, adrress, area, price, location, bz) VALUES ('"+data_house_code+"', '"+name+"', '"+address+"', '"+area+"', '"+price+"', '', '"+tagStr+"');"database.execSql(insertSql)except Exception as e:print(e)print("睡眠5s")time.sleep(5)

总结

我们用到的数据有时候不是现成的,需要从网上爬取。python提供了很好的爬虫包,有requests、BeautifulSoup. scrapy。可以直接导入。
1、首先安装需要用到的包 requests 和 BeautifulSoup。2、抓取和解析页面链家网的租房列表页,URL结构为:https://bj.lianjia.com/zufang/pg/bj表示城市 zufang是频道名称首页面码 我们要抓取的是北京的租房频道,所以前面的部分不会变。将URL分为两部分,前面的固定部分赋值给url,后面使用while循环遍历页面。我们使用while循环生成做分页,转化格式后于前面的URL固定部分拼成要抓取的URL。将抓取的页面保存到html中#循环抓取列表页信息。BeautifulSoup对页面进行解析#解析抓取的页面内容=BeautifulSoup(html,‘html.parser’)完成解析后,就开始对页面中的关键信息进行提取了。我们提取租房的价格、小区,地址,户型,面积,价格更新时间等信息,最后将抓取信息存入数据库!


希望对刚学习爬虫的小伙伴有帮助!(◦˙▽˙◦)

python 爬取链家网北京租房信息相关推荐

  1. 五十七、爬取链家网北京二手房信息,并进行线性回归建模

    @Author : By Runsen @Date:2020/5/31 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严 ...

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

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

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

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

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

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

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

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

  6. python爬取链家网实例——scrapy框架爬取-链家网的租房信息

    说明: 本文适合scrapy框架的入门学习. 一.认识scrapy框架 开发python爬虫有很多种方式,从程序的复杂程度的角度来说,可以分为:爬虫项目和爬虫文件. scrapy更适合做爬虫项目,ur ...

  7. python爬取链家网的房屋数据

    python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...

  8. 爬取链家网北京房源及房价分析

    爬取链家网北京房源及房价分析 文章开始把我喜欢的这句话送个大家:这个世界上还有什么比自己写的代码运行在一亿人的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍 1.数据获取 # 获取某市区域的所有 ...

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

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

最新文章

  1. 批量插入/修改网页代码的asp脚本
  2. RDMA技术详解(三):理解RDMA Scatter Gather List
  3. 不想当亿万富翁的程序员不是好老板
  4. tengine简单安装_实操丨如何在EAIDK上部署Tengine开发AI应用之物体检测应用入门(C++)...
  5. HDFS重复上传文件将会覆盖原文件
  6. 【Java线程安全】 synchronized同步方法、同步块:模拟抢票、模拟取款
  7. 互斥锁mutex的使用方法
  8. adb命令怎么打开_用python撸支付宝体验金,才是程序员正确的打开方式!
  9. 微课|中学生可以这样学Python(例4.1):快速判断素数
  10. 浅谈RS-485协议
  11. 爬虫福利二之妹子图网批量下载MM
  12. 基于机器视觉技术的表面缺陷检测技术综述
  13. 微博如何做到1小时增加一千台服务器应对鹿晗恋情带来的流量暴增
  14. [生存志] 第136节 相如辞赋神来之笔
  15. 基于深度学习的图标型验证码识别系统(包含完整代码、界面)
  16. 计算机论文可以写电子,计算机电子技术论文
  17. gcore调试一个并发问题
  18. 史上最全Hashmap面试总结,51道附带答案,持续更新中...
  19. IDU-指令译码单元
  20. 项目中见到的@Tablename,@TableId,@TableField什么意思

热门文章

  1. Java实现在线考试系统(系统介绍)
  2. 【CVPR2020】Detection in Crowded Scenes One Proposal Multiple Predictions 翻译
  3. 三分钟看懂5G NSA和SA
  4. 打造强大的质量团队——典型测试用例集
  5. WiFi万能钥匙破解显密码版。
  6. 【日常记录】Linux 系统 tar、rar、zip、7z、7za 压缩、解压命令
  7. 内蒙古师范大学计算机科学技术学院分数线,2019内蒙古师范大学录取分数线及历年专业分数线统计表【文科 理科】...
  8. Keras学习| ImageDataGenerator的参数
  9. 计算机实验小学教导主任,小学教导主任职责
  10. 【认证】数字电视高清认证情况及关键技术指标