python如何解析爬取的数据?

2024-05-04 20:48

1. python如何解析爬取的数据?

用json方法转成字典

python如何解析爬取的数据?

2. 怎么用python爬取相关数据

以下代码运行通过:
import requestsfrom bs4 import BeautifulSoupimport osheaders = {    'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) "                  "Chrome/22.0.1207.1 Safari/537.1"}## 浏览器请求头(大部分网站没有这个请求头会报错)all_url = 'http://www.mzitu.com/all'start_html = requests.get(all_url, headers=headers)## 使用 requests 中的 get 方法来获取 all_url 的内容 headers 为请求头print(start_html.text)## 打印 start_html## concent 是二进制的数据,下载图片、视频、音频、等多媒体内容时使用 concent## 打印网页内容时使用 text运行效果:

3. 如何利用python爬虫获取数据

北京买房时链家的房价只给了一小部分数据,远远不能满足需求。花了几个小时写了一个爬虫,爬下北京所有的小区信息及北京所有小区的历史成交记录,这样是不是很酷的爬虫。

如何利用python爬虫获取数据

4. 我想用python爬虫爬取数据,但是数据格式不是很懂,谁能给我说说怎么爬取?



5. 如何用python抓取网页上的数据

使用内置的包来抓取,就是在模仿浏览器访问页面,再把页面的数据给解析出来,也可以看做是一次请求。

如何用python抓取网页上的数据

6. Python中怎么用爬虫爬

Python爬虫可以爬取的东西有很多,Python爬虫怎么学?简单的分析下:
如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得简单、容易上手。
利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息,比如:
知乎:爬取优质答案,为你筛选出各话题下最优质的内容。
淘宝、京东:抓取商品、评论及销量数据,对各种商品及用户的消费场景进行分析。
安居客、链家:抓取房产买卖及租售信息,分析房价变化趋势、做不同区域的房价分析。
拉勾网、智联:爬取各类职位信息,分析各行业人才需求情况及薪资水平。
雪球网:抓取雪球高回报用户的行为,对股票市场进行分析和预测。
爬虫是入门Python最好的方式,没有之一。Python有很多应用的方向,比如后台开发、web开发、科学计算等等,但爬虫对于初学者而言更友好,原理简单,几行代码就能实现基本的爬虫,学习的过程更加平滑,你能体会更大的成就感。
掌握基本的爬虫后,你再去学习Python数据分析、web开发甚至机器学习,都会更得心应手。因为这个过程中,Python基本语法、库的使用,以及如何查找文档你都非常熟悉了。
对于小白来说,爬虫可能是一件非常复杂、技术门槛很高的事情。比如有人认为学爬虫必须精通 Python,然后哼哧哼哧系统学习 Python 的每个知识点,很久之后发现仍然爬不了数据;有的人则认为先要掌握网页的知识,遂开始 HTMLCSS,结果入了前端的坑,瘁……
但掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现,但建议你从一开始就要有一个具体的目标。
在目标的驱动下,你的学习才会更加精准和高效。那些所有你认为必须的前置知识,都是可以在完成目标的过程中学到的。这里给你一条平滑的、零基础快速入门的学习路径。
1.学习 Python 包并实现基本的爬虫过程
2.了解非结构化数据的存储
3.学习scrapy,搭建工程化爬虫
4.学习数据库知识,应对大规模数据存储与提取
5.掌握各种技巧,应对特殊网站的反爬措施
6.分布式爬虫,实现大规模并发采集,提升效率

7. 怎么使用python爬取百度网的数据

档案系统初期算是告一段落了,利用一点时间继续爬取POI。和领导聊聊,受益匪浅。之前我的想法是爬取一份poi数据,直接能用;而领导听了之后,觉得更好的方式是爬取多个渠道来源的POI数据,然后做一个数据比较融合(最终事情能不能成不好说,但是经过这么一回,细节技术上有所提高,宏观把控整体项目流程能力有所长进,更重要的是通过和能人交流,以更高的眼界更宏观的看待数据、应用以及问题,这就是成长)。 我之前采用的方式,可以满足需求,但是POI数据获取效率差一些(虽然已经很快,但是相比本文这种还是慢一些)、数据现势性不好,高德数据和百度数据虽然是两套,但是仅仅是坐标不同(所以显然还是一套)。所以,我加一种方式来爬取百度poi。
一  调研: 百度API提供了一个叫Place API获取poi的接口,有个城市内检索 实例为

ce/v2/search?query=银行&page_size=10&page_num=0&scope=1®ion=北京&output=json&ak={您的密钥}
它返回的是个json类型数据,一个区域最大返回数为400,每页最大返回数为20。显然一个城市内不管什么类别的poi,不可能只有400个,会遗漏数据,故舍去

还有一个矩形区域检索,实例为
u.com/place/v2/search?query=美食&page_size=10&page_num=0&scope=1&bounds=39.915,116.404,39.975,116.414&output=json&ak={您的密钥}只要区域划分得当,这个可以使用
二 要解决的问题
1 区域划分 
网上有人通过递归写代码的方式来划分,这样划分有问题,第一,划分的区域不能完全对应一个城市的市区;第二,算法设计比较麻烦。解决办法,后面详细说。
2 类别问题  
百度API的接口必须要指定query的类别,那么如果类别指定不准,或者类别不全,根本无法完成爬取一个城市所有poi的任务。解决办法,说实话,这个问题在我做这件事情的时候,
十分棘手,不过我最终找到了这个网页
/index.php?title=lbscloud/poitags,一切都不是问题了
三 整体流程
1 区域划分,2km*2km的区域基本可以满足需求,获取每个区域的对角坐标(经纬度),逐行写入一个txt文本里
2 爬虫程序编写  读取1中的txt文本,逐行循环;调用百度API接口,爬取json;将爬取的数据存入数据库中; 每个类别跑一次程序
3 爬下的POI数据处理  poi显示,投影坐标转换,与地图叠加 

后文将详细介绍流程

怎么使用python爬取百度网的数据

8. 如何用python爬取nba数据中心的数据

爬取的网站为:stat-nba.com,本文爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据
改变url_header和url_tail即可爬取特定的其他数据。
源代码如下:
[python] view plain copy
#coding=utf-8  
import sys  
reload(sys)  
sys.setdefaultencoding('utf-8')  

import requests  
import time  
import urllib  
from bs4 import BeautifulSoup  
import re  
from pyExcelerator import *  

def getURLLists(url_header,url_tail,pages):  
""" 
获取所有页面的URL列表 
"""  
url_lists = []  
url_0 = url_header+'0'+url_tail  
print url_0  
url_lists.append(url_0)  
for i in range(1,pages+1):  
url_temp = url_header+str(i)+url_tail  
url_lists.append(url_temp)  
return url_lists  

def getNBAAllData(url_lists):  
""" 
获取所有2017赛季NBA常规赛数据 
"""  
datasets = ['']  
for item in url_lists:  
data1 = getNBASingleData(item)  
datasets.extend(data1)  
#去掉数据里的空元素  
for item in datasets[:]:  
if len(item) == 0:  
datasets.remove(item)  
return datasets  
def getNBASingleData(url):  
""" 
获取1个页面NBA常规赛数据 
"""  
QueryType=game&order=1&crtcol=date_out&GameType=season&PageNum=3000&Season0=2016&Season1=2017'  
# html = requests.get(url).text  
html = urllib.urlopen(url).read()  
# print html  
soup = BeautifulSoup(html)  
data = soup.html.body.find('tbody').text  
list_data = data.split('\n')  
# with open('nba_data.txt','a') as fp:  
#     fp.write(data)  
# for item in list_data[:]:  
#     if len(item) == 0:  
#         list_data.remove(item)  
return list_data  

def saveDataToExcel(datasets,sheetname,filename):  

book = Workbook()  
sheet = book.add_sheet(sheetname)  
sheet.write(0,0,u'序号')  
sheet.write(0,1,u'球队')  
sheet.write(0,2,u'时间')  
sheet.write(0,3,u'结果')  
sheet.write(0,4,u'主客')  
sheet.write(0,5,u'比赛')  
sheet.write(0,6,u'投篮命中率')  
sheet.write(0,7,u'命中数')  
sheet.write(0,8,u'出手数')  
sheet.write(0,9,u'三分命中率')  
sheet.write(0,10,u'三分命中数')  
sheet.write(0,11,u'三分出手数')  
sheet.write(0,12,u'罚球命中率')  
sheet.write(0,13,u'罚球命中数')  
sheet.write(0,14,u'罚球出手数')  
sheet.write(0,15,u'篮板')  
sheet.write(0,16,u'前场篮板')  
sheet.write(0,17,u'后场篮板')  
sheet.write(0,18,u'助攻')  
sheet.write(0,19,u'抢断')  
sheet.write(0,20,u'盖帽')  
sheet.write(0,21,u'失误')  
sheet.write(0,22,u'犯规')  
sheet.write(0,23,u'得分')  

num = 24  
row_cnt = 0  
data_cnt = 0  
data_len = len(datasets)  
print 'data_len:',data_len  
while(data_cnt< data_len):  
row_cnt += 1  
print '序号:',row_cnt  
for col in range(num):  
# print col  
sheet.write(row_cnt,col,datasets[data_cnt])  
data_cnt += 1  
book.save(filename)  

def writeDataToTxt(datasets):  
fp = open('nba_data.txt','w')  
line_cnt = 1  
for i in range(len(datasets)-1):  
#球队名称对齐的操作:如果球队名字过短或者为76人队是 球队名字后面加两个table 否则加1个table  
if line_cnt % 24 == 2 and len(datasets[i]) < 5 or datasets[i] == u'费城76人':  
fp.write(datasets[i]+'\t\t')  
else:  
fp.write(datasets[i]+'\t')  
line_cnt += 1  
if line_cnt % 24 == 1:  
fp.write('\n')  
fp.close()  

if __name__ == "__main__":  

pages = int(1132/150)  
url_header = 'hp?page='  
url_tail = '&QueryType=game&order=1&crtcol=date_out&GameType=season&PageNum=3000&Season0=2016&Season1=2017#label_show_result'  
url_lists = getURLLists(url_header,url_tail,pages)  
datasets = getNBAAllData(url_lists)  

writeDataToTxt(datasets)  

sheetname = 'nba normal data 2016-2017'  
str_time = time.strftime('%Y-%m-%d',time.localtime(time.time()))  
filename = 'nba_normal_data'+str_time+'.xls'  
saveDataToExcel(datasets,sheetname,filename)