Python爬取实战-二手房信息,最终将数据存储到MySQL数据库中
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数据库中相关推荐
- python:使用selenium爬取51job(前程无忧)并将爬取数据存储到MySql数据库中的代码实例
自己捣鼓了几天写的代码,基本上把51job的岗位相关的数据都爬下来了,可以视要求自行增减,代码虽然有些简陋,不过我爬取的时候没报什么错.代码适合初学者学习使用,废话不多说,代码如下: from sel ...
- 爬取网贷之家平台数据保存到mysql数据库
# coding utf-8 import requests import json import datetime import pymysqluser_agent = 'User-Agent: M ...
- python爬取12306列车信息自动抢票并自动识别验证码(二)selenium登录验证篇
项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时 ...
- 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)
用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...
- Python爬取京东书籍信息(包括书籍评论数、简介等)
Python爬取京东书籍信息(包括书籍评论数.简介等) 一. 工具 二. 准备爬取的数据 三. 内容简述 四. 页面分析 (一) 寻找目录中商品所在标签 (二) 寻找页面中能爬取到的所有数据 (三) ...
- 别再说难了,年轻小伙教你如何爬取“新一线城市”二手房信息
别再说难了,年轻小伙教你如何爬取"新一线城市"二手房信息 主页面信息爬取 主页面分析 主页面url获取 获取页面数据 页面数据解析及保存 详情页 url 数据 详情页信息爬取 详情 ...
- python爬取自如房间信息(一)
使用python和selenium+Chrome Headless爬取自如房间信息,并将结果存储在MongoDB中.其中最麻烦的应该是每间房的价格,因为自如是用一张图片和offset来显示价格,所以不 ...
- 2021最新 python爬取12306列车信息自动抢票并自动识别验证码(三)购票篇
项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否则后果自行 ...
- 2021最新python爬取12306列车信息自动抢票并自动识别验证码
项目描述 项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否 ...
- python爬取12306列车信息自动抢票并自动识别验证码(一)列车数据获取篇
项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master].注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一 ...
最新文章
- 第一次当领导,一定要知道的5个工具
- python ocr中文识别库 tesseract安装及问题处理
- bzoj1038 [ZJOI2008]瞭望塔
- java 对象图_Java对象内存图
- 实验12:引用外部属性文件★(spring管理连接池);
- 标普500指数成分股公司2020年的全年每股收益为110美元,较2019年下跌33%。
- Android --- 自定义ImageView 实现圆形图片
- 跟我学Java(配光盘)(跟我学)
- ios中amplify配置configure_Nginx源码编译安装及配置文件初步学习
- JAVA实现AES 解密报错Input length must be multiple of 16 when decrypting with padded cipher
- SignalR入门之Hub
- 什么是CMPP、SGIP、SMGP三大运营商接口协议
- 友华PT925E,电信天翼网关3.0,光猫超级密码获取最简便方式
- 一种身份证号码的编码压缩方法
- 这是我看过最棒的MEMS介绍文章,从原理制造到应用全讲透(强推)
- lambda表达式与正则表达式
- MySQL 的主从复制(高级篇)
- Promise(一)介绍、fs读取文件、AJAX请求
- 基于QT的网络音乐播放器(一)
- iPhone 各大机型设备号
热门文章
- excel按名字拆分文件_在Excel中拆分姓氏和名字
- samba的安装与配置
- Kibana:运用 script fields 对数据进行清洗
- 【重新认识数据结构】之优先队列
- LaTeX实战经验:标点符号注意点
- FL Studio21.2.0.3842中文免费版和谐绿色版本下载
- ** 指向指针的指针,那个指针又指向常量
- 新来一个技术总监:禁止戴耳机写代码,发现就扣绩效。。
- G-Biosciences Pearl IgG纯化树脂:超快15 分钟内纯化
- 《Haskell趣学指南》—— 第1章,第1.5节我是列表推导式