Python——爬取人口迁徙数据(以腾讯迁徙为例)

说明:

1.迁徙量是腾讯修改后的数值,无法确认真实性。

2.代码运行期间,腾讯迁徙未设置IP屏蔽和浏览器检测,因此下段代码仅能保证发布近期有效。

3.代码功能:爬取指定一天的四十个城市左右的迁徙量(含迁入、迁出)。

 1 import re
 2 import urllib.request
 3 import xlwt
 4 import xlrd
 5
 6 date = "20171016"
 7 cityList = xlrd.open_workbook("E:/city.xls").sheet_by_index(0).col_values(0) # [‘city‘, ‘南昌‘, ‘景德镇‘, ‘萍乡‘, ...
 8 cityCodeList = xlrd.open_workbook("E:/city.xls").sheet_by_index(0).col_values(1) # [‘cityCode‘, ‘360100‘, ‘360200‘,...
 9 direction = ["0","1"]
10 header = ["from","to","number","car","train","plane"]
11 dInd = 0
12 for cityIndex in range(1,len(cityCodeList)):
13     for dInd in range(2):
14         url = "https://lbs.gtimg.com/maplbs/qianxi/" + date + "/" + cityCodeList[cityIndex] + direction[dInd] + "6.js" # "0 迁入": result-city,"1 迁出:city-result
15         workbook = xlwt.Workbook()
16         sheet = workbook.add_sheet("result")
17         for i in range(len(header)):
18             sheet.write(0,i,header[i])
19         ptRow = re.compile(‘(\[".*?\])‘)
20         ptCity = re.compile("")
21         try:
22             data = urllib.request.urlopen(url).read().decode("utf8") # JSONP_LOADER&&JSONP_LOADER([["重庆",198867,0.000,0.300,0.700],["上海",174152,0.160,0.390,0.450],[...
23             dataList = re.findall(ptRow,data) # [‘["重庆",198867,0.000,0.300,0.700]‘, ‘["上海",174152,0.160,0.390,0.450]‘,[...
24             for i in range(len(dataList)):
25                 colList = str(dataList[i]).split(",") # colList[4] = 0.700]
26                 if direction[dInd] == "0":
27                     sheet.write(i + 1, len(header) - 6, str(colList[0]).replace("[","").replace(‘"‘,"")) # city
28                     sheet.write(i + 1, len(header) - 5, cityList[cityIndex])
29                 else:
30                     sheet.write(i + 1, len(header) - 6, cityList[cityIndex])
31                     sheet.write(i + 1, len(header) - 5, str(colList[0]).replace("[","").replace(‘"‘,"")) # city
32                 sheet.write(i + 1, len(header) - 4, colList[1]) # number
33                 sheet.write(i + 1, len(header) - 3, colList[2]) # car
34                 sheet.write(i + 1, len(header) - 2, colList[3]) # train
35                 sheet.write(i + 1, len(header) - 1, str(colList[4]).replace("]","")) # plane
36         except Exception as e:
37             print(e)
38         workbook.save("E:/qianxi/" + str(cityList[cityIndex]) + direction[dInd] + date + ".xls")
39 print("Done!")

结果展示:

原文地址:http://www.cnblogs.com/shadrach/p/7687602.html

时间: 2024-08-30 02:53:40

Python——爬取人口迁徙数据(以腾讯迁徙为例)的相关文章

Python爬取房产数据,在地图上展现!

小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. 首先还是分析思路,爬取网站数据,获取小区名称,地址,价格,经纬度,保存在excel里.再把excel数据上传到BDP网站,生成地图报表 本次我使用的是scrapy框架,可能有点大材小用了,主要是刚学完用这个练练手,再写代码前我还是建议大家先分析网站,分析好数据,再去动手写代码,因为好的分析可以事半功

python爬取网页数据

python时间戳 将时间戳转为日期 #!/usr/bin/python # -*- coding: UTF-8 -*- # 引入time模块 import time #时间戳 timeStamp = 1581004800 timeArray = time.localtime(timeStamp) #转为年-月-日形式 otherStyleTime = time.strftime("%Y-%m-%d ", timeArray) print(otherStyleTime) python爬

利用python爬取龙虎榜数据及后续分析

##之前已经有很多人写过相关内容,但我之前并未阅读过,这个爬虫也是按照自己的思路写的,可能比较丑陋,请见谅! 本人作为Python爬虫新手和股市韭菜,由于时间原因每晚没办法一个个翻龙虎榜数据,所以希望借助爬虫筛选出有用信息,供我分析(其实就是想偷懒...). 每日的龙虎榜数据都在:http://data.eastmoney.com/stock/lhb.html 爬取过程其实很简单,不需要登陆,也不需要模拟浏览器登录:数据量小,因此也不用多进程,也不用更换IP等反爬虫手段.后续的分析可能更关键.

python爬取github数据

爬虫流程 在上周写完用scrapy爬去知乎用户信息的爬虫之后,github上star个数一下就在公司小组内部排的上名次了,我还信誓旦旦的跟上级吹牛皮说如果再写一个,都不好意思和你再提star了,怕你们伤心.上级不屑的说,那就写一个爬虫爬一爬github,找一找python大牛,公司也正好在找人.临危受命,格外激动,当天就去研究github网站,琢磨怎么解析页面以及爬虫的运行策略.意外的发现github提供了非常nice的API以及文档文档,让我对github的爱已经深入骨髓. 说了这么多废话,讲

Python爬取房产数据,哪里跌价买哪里,你可能不赚,但我永远不亏

小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. 学习Python中有不明白推荐加入交流裙 号:735934841 群里有志同道合的小伙伴,互帮互助, 群里有免费的视频学习教程和PDF! 本次我使用的是scrapy框架,可能有点大材小用了,主要是刚学完用这个练练手,再写代码前我还是建议大家先分析网站,分析好数据,再去动手写代码,因为好的分析可以事半

python爬取网页数据方法

"""#最基本,请求地址无参数# response=urllib.request.urlopen("https://www.scetc.edu.cn")## html=response.read().decode("utf-8")## print(html) #第二种,传参数的情况#参数的转换 参数的原始数据# key_value={'kw' : '胡歌'}# #要使用urllib.parse模块下的urllencode对原始数据进行转

没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不是打广告的,没收广告费的) 同时,之前同事也发了一个贴吧的段子聚居地,客官稍等,马上奉上连接:段友之家?https://tieba.baidu.com/f?ie=... 然后呢,看到上面,确实好多段友在上面,于是乎,我就想爬取他们的图片和小视频,就有了这篇文章的主题: 其实吧,用Python爬取网站数据是最基

Python爬取京东商品数据

对京东某一商品信息页面的HTML代码进行分析,可以发现它的图书产品信息页面都含有这样一段代码(不同类的商品页面有些不同): window.pageConfig={compatible:true,searchType: 1,product:{"skuid":"11408255","name":"\u4f17\u795e\u7684\u536b\u661f\uff1a\u4e2d\u56fd\u7981\u533a","

python爬取数据被限制?一招教你伪造反爬技术!

1.Headers限制 这应该是最常见的,最基本的反爬虫手段,主要是初步判断你是否是真实的浏览器在操作. 这个一般很好解决,把浏览器中的Headers信息复制上去就OK了. 值得注意的是,很多网站只需要userAgent信息就可以通过,但是有的网站还需要验证一些其他的信息,比如知乎,有一些页面还需要 authorization 的信息.所以需要加哪些Headers,还需要尝试,可能还需要Referer.Accept-encoding等信息. 2.IP限制 限制IP也是很多网站反爬虫的初衷,有些人