python数据爬取案例--地产数据及交通数据
一、地产数据爬取
原创代码,打个标签,便于自己以后整理。
1、数据来源
数据来源为浙报传媒地产研究院的网上数据,红色标注区段改写后,可用于提取不同地市、不同时段的房地产土地交易数据,用于深入分析。
2、数据爬取
采用requests进行数据爬取,需要注意对异常数据的处理。本代码中采用try进行流拍、中止交易处理。
from bs4 import BeautifulSoup
import requests
import urllib3
import re
import csv
import os
from urllib.parse import urljoin,urlparse#检查URL地址
def check_link(url):
header= {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}
r=requests.get(url=url,headers=header) #查看网页源代码 document.charset
return(r.text)#爬取资源
def get_contents(ulist,rurl):
soup=BeautifulSoup(rurl,'html.parser')
table=soup.find('table') #找到包含数据的表格
#print(table)
trs=table.find_all('tr')
for tr in trs:
ui=[]
for td in tr:
ui.append(td.string)
ulist.append(ui)
for list in ulist:
print(list)#保存资源
def save_contents(file_path,file_name,urlist):
if not os.path.exists(file_path):#是否存在文件夹,不存在就创建
os.makedirs(file_path)
path=file_path+os.path.sep+'{file_name}'.format(file_name=file_name+".csv")
with open(path,"w",newline='') as f:
writer=csv.writer(f)
writer.writerow(['嘉兴土地交易状况'])
ge=['中止','流拍']
try:
for i in range(len(urlist)):
if urlist[i][13] not in ge:
writer.writerow([urlist[i][1],urlist[i][3],urlist[i][5],urlist[i][7],urlist[i][9],urlist[i][11],urlist[i][13],urlist[i][15],urlist[i][17],urlist[i][19],urlist[i][21]])
else:
writer.writerow([urlist[i][1],urlist[i][3],urlist[i][5],urlist[i][7],urlist[i][9],urlist[i][11],urlist[i][13]]) #应对流拍、中止情况
except:
passdef main():
urli=[]
url='http://yanjiu.zzhz.com.cn/newPageindex.html?att=2019&attName=2019&slRg=54&brd=&brdName=%25E5%2598%2589%25E5%2585%25B4' #修改URL地址,获取不同阶段的地价表格
rs=check_link(url)
#print(rs)
get_contents(urli,rs)
save_contents(r"E:\地产研究资料","2019-jx",urli)main()
3、数据结果
二、交通数据爬取
爬取数据来源:http://www.hzjtydzs.com/index4.html
1、爬取数据代码
原网页是基于js编写的,因此requests不同提取得到数据。采用selenium进行数据提取,方法是一样的。需要先定位到数据,对数据进行提取,保存。
#抓取杭州市交通拥堵指数页面-分区域交通-主要道路行程车速
#设置保存文件的位置,并按照“时间”对文件进行命名,进行存储。
#
from bs4 import BeautifulSoup
import pandas as pd
import re
import csv
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import lxml
import datetime
import time
import os as osurl='http://www.hzjtydzs.com/index4.html'
browser=webdriver.Chrome() #需安装webdriver,在chrome的开发模式下进行
browser.get(url)#找到页面源码
print("等待网页相应....")
wait=WebDriverWait(browser,10)
Xpath="//*[@id=\"secure_fund_list1\"]" #可借助xpath helper定位到数据
wait.until(EC.presence_of_element_located((By.XPATH,Xpath)))
#presence_of_element_located()方法中传入的应该是一个元组, ec.presence_of_element_located((By.ID, 'feed_friend'))
#多了一个括号, 把传入参数变为元组类型
print("正在获取网页数据...")
soup=BeautifulSoup(browser.page_source,'html.parser') #页面解析
browser.close() #关闭brower#定位数据
ulist=[]
for tr in soup.find_all('tr'):
item=[]
for td in tr.find_all('td'):
lst=td.get_text()
item.append(lst)
ulist.append(item)
shuju=[]
for i in range(0,len(ulist),2):
shuju.append(ulist[i])
#print(shuju) #打印数据
#print(len(shuju)) #打印数据长度
#print(shuju[2]) #打印数据第3行(编号从0开始)#保存资源
def save_contents(file_path,file_name,urlist):
if not os.path.exists(file_path):#是否存在文件夹,不存在就创建
os.makedirs(file_path)
path=file_path+os.path.sep+'{file_name}'.format(file_name=file_name+".csv")
#path=r"D:\jtzs\{name}".format(name=file_name+".csv")
with open(path,"w",newline='') as f: #增加newline='',删除空格行
writer=csv.writer(f)
writer.writerow(['jtzs'])
for i in range(len(ulist)):
try:
writer.writerow([urlist[i][0],urlist[i][1],urlist[i][2],urlist[i][3]])
except:
pass
def main():
path=r"D:\jtzs"
filename=datetime.datetime.now().strftime('%b-%d-%Y %H%M%S')
save_contents(path,filename,shuju)
main()
2、提取得到数据
python数据爬取案例--地产数据及交通数据相关推荐
- (python爬虫)新浪新闻数据爬取与清洗+新浪新闻数据管理系统+MySQL
新浪新闻数据爬取与清洗+新浪新闻数据管理系统 设计要求 新浪新闻数据爬取与清洗 基本要求:完成新浪新闻排行中文章的数据爬取,包括标题.媒体.时间.内容. 进阶要求:对最近一周出现次数最多的关键字排名并 ...
- 每日一练:Python爬虫爬取全国新冠肺炎疫情数据实例详解,使用beautifulsoup4库实现
Python 爬虫篇 - 爬取全国新冠肺炎疫情数据实例详解 效果图展示 第一章:疫情信息的下载与数据提取 ① 爬取页面数据到本地 ② json 字符串正则表达式分析 ③ 提取数据中的 json 字符串 ...
- python+requests+ 爬取官网双色球开奖数据
python+requests+mysql 爬取官网双色球开奖数据 分析网页数据获取方式 第一种查询方式 第二种查询方式 完整代码 分析网页数据获取方式 第一种查询方式 在官网上 可以找到多种数据查询 ...
- python爬虫之 爬取案例网页ajax请求的数据
本篇案例以这个网站为例, 阿里云智能logo设计,用requests抓取这个网站页面的时候是抓取不到生成的logo图片的,因为数据不是直接就存储在html页面里的,ajax请求在不重新加载整个页面的情 ...
- 如何用Python自动爬取全国30+城市地铁图数据?
阅读本文大概需要 3 分钟. 最近两天工作之余,开始涉猎python,自动爬取了全国30+城市地铁图数据,这里分享下整个爬虫过程 1. 数据来源 首先分析全国各个城市地铁图的数据来源,无非就是百度或者 ...
- 【Python】爬取知乎上的问答数据来汇总出有哪些免费的论文查重网站
本文目录:哪里获取-如何获取-代码编写-数据处理 本文作者:小赖同学 最近突然感觉自己越来越社会人,这不,小我三届的师弟都来请教我有关毕业的事情了. 不知不觉,就又到了一年的毕业季,曾经在校园潇洒的我 ...
- python爬虫爬取使用Ajax请求的网站数据解析——以梅老板微博为例(m.weibo.cn)
文章目录 前言 什么是Ajax Ajax基本原理 发送请求 解析内容 渲染网页 Ajax分析方法 查看请求 过滤请求 Ajax结果提取 1.分析请求(since_id解析) 2.分析响应 3.爬取微博 ...
- python爬虫爬取腾讯网站——实时疫情数据并生成Excel表格
一.基本介绍: 开发背景:自从2020年新冠疫情发生后,至今为止的相关疫情数据新闻已经是非常的巨大了,我们无时不在在用数据尝试帮助我们解剖全球的疫情状况.由此可见,新冠疫情数据的新闻报道数量与国内疫情 ...
- 利用Python自动爬取全国30+城市地铁图数据
数据来源 首先分析全国各个城市地铁图的数据来源,无非就是百度或者高德,这次选择用高德作为数据来源. 基本环境配置 版本:Python3 系统:Windows 相关模块: 安装请求库 pip insta ...
最新文章
- 数据库界的Swagger:一键生成数据库文档!你不了解一下?
- UVa122-Trees on the level
- mac电脑开机出现客人用户,没有输入密码框,其他键都点不动,重启也不好使
- JDBCUtils工具类编写
- mac安全与隐私只有两个选项,少了一个任何来源
- eclipse html自动对齐,MyEclipse和Eclipse中jsp、html格式化自动排版问题
- ModuleNotFoundError: No module named 'cv2'
- 智能会议系统(9)---流媒体协议学习
- 数据仓库ETL(二)基本概念
- Kotlin入门(21)活动页面的跳转处理
- java queue通信_Java -- 使用阻塞队列(BlockingQueue)控制线程通信
- python修改pip源脚本_修改python的pip源为国内源
- linux 下tar打包举例,Linux tar打包命令
- emacs 学习成长记
- [Android]高通平台BootLoader启动流程
- 名帖168 李邕 行书《出师表》
- PreTranslateMessage()
- .py文件转.pyc文件
- 【基础】(C语言)高精度算法
- 家庭用户无线上网案例(AC通过三层口对AP进行管理)
热门文章
- Windows内核与原理读书笔记之DPC和时钟中断和定时器管理
- ionic升华过程8-cordova插件+mui小案例
- 优惠券运营指南:一张搞定拉新、促活、转化、召回
- 企业信息安全需要做到的三点,可以有效的规避大部分风险
- openwrt 配置WAN 和 LAN
- 毫米波雷达传感技术方案,爱希ISEE人体感应器,智能感应人体存在控制应用
- python boxplot 多组_Matlab boxplot for Multiple Groups(多组数据的箱线图)
- 聚美优品正式退市:陈欧下一个将为谁代言?
- 静态网站(博客)生成器Static Site Generators(SSGs)大集合
- 《数值分析(原书第2版)》—— 导读