首页 > 编程知识 正文

python获取网页接口数据,python访问网页接口

时间:2023-12-27 22:26:31 阅读:324441 作者:HVNV

本文目录一览:

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

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

一 调研: 百度API提供了一个叫Place API获取poi的接口,有个城市内检索 实例为

ce/v2/search?query=银行page_size=10page_num=0scope=1region=北京output=jsonak={您的密钥}

它返回的是个json类型数据,一个区域最大返回数为400,每页最大返回数为20。显然一个城市内不管什么类别的poi,不可能只有400个,会遗漏数据,故舍去

还有一个矩形区域检索,实例为

u.com/place/v2/search?query=美食page_size=10page_num=0scope=1bounds=39.915,116.404,39.975,116.414output=jsonak={您的密钥}只要区域划分得当,这个可以使用

二 要解决的问题

1 区域划分

网上有人通过递归写代码的方式来划分,这样划分有问题,第一,划分的区域不能完全对应一个城市的市区;第二,算法设计比较麻烦。解决办法,后面详细说。

2 类别问题

百度API的接口必须要指定query的类别,那么如果类别指定不准,或者类别不全,根本无法完成爬取一个城市所有poi的任务。解决办法,说实话,这个问题在我做这件事情的时候,

十分棘手,不过我最终找到了这个网页

/index.php?title=lbscloud/poitags,一切都不是问题了

三 整体流程

1 区域划分,2km*2km的区域基本可以满足需求,获取每个区域的对角坐标(经纬度),逐行写入一个txt文本里

2 爬虫程序编写 读取1中的txt文本,逐行循环;调用百度API接口,爬取json;将爬取的数据存入数据库中; 每个类别跑一次程序

3 爬下的POI数据处理 poi显示,投影坐标转换,与地图叠加

后文将详细介绍流程

python如何读取网页中的数据

用Beautiful Soup这类解析模块:

Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree);

它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作;

用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html;

然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了,例如:

from BeautifulSoup import BeautifulSoup

html = 'htmlheadtitletest/title/headbodyptest body/p/body/html'

soup = BeautifulSoup(html)

soup.contents[0].name

# u'html'

soup.comtents[0].contents[0].name

# u'head'

head = soup.comtents[0].contents[0]

head.parent.name

# u'html'

head.next

# u'titletest/title

python 怎么获取web数据

python标准库有urllib, urllib2还有三方库requests,这些都可以发送http请求,然后获得返回的内容,也就是网页内容。

如何用python抓取js生成的数据

一、查看相应的js代码,用python获取原始数据之后,模仿js编写相应的python代码。

二、通过接口api获得数据,直接使用python获取接口数据并处理。

三。终极方法。使用 Selenium和PhantomJS执行网页js代码,然后再获取数据,这种方法100%可以获取数据,确定就是速度太慢。

如何用Python爬虫抓取网页内容?

爬虫流程

其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤

模拟请求网页。模拟浏览器,打开目标网站。

获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。

保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。

那么我们该如何使用 Python 来编写自己的爬虫程序呢,在这里我要重点介绍一个 Python 库:Requests。

Requests 使用

Requests 库是 Python 中发起 HTTP 请求的库,使用非常方便简单。

模拟发送 HTTP 请求

发送 GET 请求

当我们用浏览器打开豆瓣首页时,其实发送的最原始的请求就是 GET 请求

import requests

res = requests.get('')

print(res)

print(type(res))

Response [200]

class 'requests.models.Response'

python抓取接口内容用什么方法

你的问题事实上包含几部分:

将 PDF 转化为纯文本格式

抽取其中部分内容

格式化写入到 excel 中

转换 PDF 有很多库可以完成,如下是通过 pdfminer 的示例:

from cStringIO import StringIO

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

from pdfminer.converter import TextConverter

from pdfminer.layout import LAParams

from pdfminer.pdfpage import PDFPage

def convert_pdf_2_text(path):

rsrcmgr = PDFResourceManager()

retstr = StringIO()

device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())

interpreter = PDFPageInterpreter(rsrcmgr, device)

with open(path, 'rb') as fp:

for page in PDFPage.get_pages(fp, set()):

interpreter.process_page(page)

text = retstr.getvalue()

device.close()

retstr.close()

return text

需要指出的是,pdfminer 不但可以将 PDF 转换为 text 文本,还可以转换为 HTML 等带有标签的文本。上面只是最简单的示例,如果每页有很独特的标志,你还可以按页单独处理。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。