Python爬取链家二手房信息,将数据存储到MySQL数据库中


import requests
import re
from op_mysql import PymysqlUtil  # 导入写好的数据库连接方法class LianJiaSpider():# 初始化一个参数def __init__(self):self.url = 'https://bj.lianjia.com/ershoufang/pg{}'self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"}# 创建一个操作数据库对象self.pyu = PymysqlUtil()# 发送请求def send_request(self, url):response = requests.get(url, headers=self.headers)if response.status_code == 200:return response# 解析数据def parse_content(self, response):li_list = re.findall(r'li class="clear LOGVIEWDATA LOGCLICKDATA"(.*?)</li>', response.text, re.S)for li in li_list:title = "".join(re.findall('<div.*?class="title".*?<a.*?>(.*?)</a>', li, re.S))img_url = "".join(re.findall('<img.*?class="lj-lazy".*?data-original="(.*?)"', li, re.S))position_info = re.findall('<div.*?class="positionInfo".*?<a.*?>(.*?)</a>.*?<a.*?>(.*?)</a>', li, re.S)if position_info:position_info = "-".join(position_info[0]).replace(" ", "")houseInfo = "".join(re.findall('<div.*?class="houseInfo".*?<span.*?</span>(.*?)</div>', li, re.S))area = re.search("(\d+\.*\d+)", houseInfo).group(1)year = re.search("(\d+)年建", houseInfo)if year:year = year.group(1)followInfo = "".join(re.findall('<div.*?class="followInfo".*?<span.*?</span>(.*?)</div>', li, re.S))follow = re.search("(\d+).*?(\d+)", followInfo).group(1)  # 关注人数push = re.search("(\d+).*?(\d+)", followInfo).group(2)  # 发布天数tag = "".join(re.findall('<div.*?class="tag">(.*?)</div>', li, re.S))tag = "-".join(re.findall("<span.*?>(.*?)</span>", tag))  # ["VR看装修”,"房本满两年"]totalPrice = "".join(re.findall('<div.*?class="totalPrice totalPrice2">.*?<span.*?>(.*?)</span>', li, re.S))unitPrice = "".join(re.findall('<div.*?class="unitPrice".*?<span>(.*?)</span>', li, re.S))unitPrice = re.search("(\d+,*\d+)", unitPrice).group(1).replace(",",".")print(title, img_url, position_info, area, year, follow, push, tag, totalPrice, unitPrice, houseInfo)res = (title, img_url, position_info, area, year, follow, push, tag, totalPrice, unitPrice, houseInfo)self.save_content(res)# 保存数据到数据库def save_content(self, res):print('正在往数据库里面存储内容')sql = "insert into lianjia values(0,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"self.pyu.insert(sql, args=res)self.pyu.Commit() # 提交# 开始方法def start(self):nums = input('请输入要爬取的页数:')for num in range(int(nums)):full_url = self.url.format(num+1)print('正在爬取第:%s 页' % full_url)response = self.send_request(full_url)if response:# with open('esf.html', 'w', encoding='utf-8') as f:#     f.write(response.text)self.parse_content(response)if __name__ == '__main__':el = LianJiaSpider()el.start()
pymysql连接数据库方法
import pymysqlclass PymysqlUtil():def __init__(self):# 创建数据库连接self.connection = pymysql.connect(host='localhost',user='root',password='pwd******',database='db_xxx')self.connection.ping(reconnect=True)# 创建一个游标self.cursor = self.connection.cursor()# 插入数据方法def insert(self,sql,args):try:self.cursor.execute(sql,args=args)except Exception as e:self.connection.close()print(e)# 提交方法def Commit(self):self.connection.commit()# 关闭连接def close_s(self):self.connection.close()

github:

Python爬取实战-二手房信息,最终将数据存储到MySQL数据库中相关推荐

  1. python:使用selenium爬取51job(前程无忧)并将爬取数据存储到MySql数据库中的代码实例

    自己捣鼓了几天写的代码,基本上把51job的岗位相关的数据都爬下来了,可以视要求自行增减,代码虽然有些简陋,不过我爬取的时候没报什么错.代码适合初学者学习使用,废话不多说,代码如下: from sel ...

  2. 爬取网贷之家平台数据保存到mysql数据库

    # coding utf-8 import requests import json import datetime import pymysqluser_agent = 'User-Agent: M ...

  3. python爬取12306列车信息自动抢票并自动识别验证码(二)selenium登录验证篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时 ...

  4. 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)

    用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...

  5. Python爬取京东书籍信息(包括书籍评论数、简介等)

    Python爬取京东书籍信息(包括书籍评论数.简介等) 一. 工具 二. 准备爬取的数据 三. 内容简述 四. 页面分析 (一) 寻找目录中商品所在标签 (二) 寻找页面中能爬取到的所有数据 (三) ...

  6. 别再说难了,年轻小伙教你如何爬取“新一线城市”二手房信息

    别再说难了,年轻小伙教你如何爬取"新一线城市"二手房信息 主页面信息爬取 主页面分析 主页面url获取 获取页面数据 页面数据解析及保存 详情页 url 数据 详情页信息爬取 详情 ...

  7. python爬取自如房间信息(一)

    使用python和selenium+Chrome Headless爬取自如房间信息,并将结果存储在MongoDB中.其中最麻烦的应该是每间房的价格,因为自如是用一张图片和offset来显示价格,所以不 ...

  8. 2021最新 python爬取12306列车信息自动抢票并自动识别验证码(三)购票篇

    项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否则后果自行 ...

  9. 2021最新python爬取12306列车信息自动抢票并自动识别验证码

    项目描述 项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否 ...

  10. python爬取12306列车信息自动抢票并自动识别验证码(一)列车数据获取篇

    项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master].注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一 ...

最新文章

  1. 第一次当领导,一定要知道的5个工具
  2. python ocr中文识别库 tesseract安装及问题处理
  3. bzoj1038 [ZJOI2008]瞭望塔
  4. java 对象图_Java对象内存图
  5. 实验12:引用外部属性文件★(spring管理连接池);
  6. 标普500指数成分股公司2020年的全年每股收益为110美元,较2019年下跌33%。
  7. Android --- 自定义ImageView 实现圆形图片
  8. 跟我学Java(配光盘)(跟我学)
  9. ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习
  10. JAVA实现AES 解密报错Input length must be multiple of 16 when decrypting with padded cipher
  11. SignalR入门之Hub
  12. 什么是CMPP、SGIP、SMGP三大运营商接口协议
  13. 友华PT925E,电信天翼网关3.0,光猫超级密码获取最简便方式
  14. 一种身份证号码的编码压缩方法
  15. 这是我看过最棒的MEMS介绍文章,从原理制造到应用全讲透(强推)
  16. lambda表达式与正则表达式
  17. MySQL 的主从复制(高级篇)
  18. Promise(一)介绍、fs读取文件、AJAX请求
  19. 基于QT的网络音乐播放器(一)
  20. iPhone 各大机型设备号

热门文章

  1. excel按名字拆分文件_在Excel中拆分姓氏和名字
  2. samba的安装与配置
  3. Kibana:运用 script fields 对数据进行清洗
  4. 【重新认识数据结构】之优先队列
  5. LaTeX实战经验:标点符号注意点
  6. FL Studio21.2.0.3842中文免费版和谐绿色版本下载
  7. ** 指向指针的指针,那个指针又指向常量
  8. 新来一个技术总监:禁止戴耳机写代码,发现就扣绩效。。
  9. G-Biosciences Pearl IgG纯化树脂:超快15 分钟内纯化
  10. 《Haskell趣学指南》—— 第1章,第1.5节我是列表推导式