首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据分析进阶课程笔记(六)

网络服务本质是指你可以利用HTTP请求进行访问的数据库。但是要访问某个数据库必然要知道它所需要的参数是哪些。显然,不同的网站、不同类别的数据对参数的要求不尽相同。

当需要用Python获取存在网页上的数据时,首先要知道它所需要传递的参数有哪些。达到这个目的的方法就是使用浏览器的“检查”功能

黑粗体所标注出来的就是需要传递的参数,在这个例子中有8个参数:

__EVENTTARGET: checked

__EVENTARGUMENT:checked

__VIEWSTATE:checked

(__VIEWSTATEGENERATOR:)checked

__EVENTVALIDATION:checked

CarrierList:All checked

AirportList:BOS checked

Submit:Submit checked

这8个参数当中有5个是隐藏参数(具体发挥哪些作用我也不是很懂),其余3个是可以在网页中直接被看见的,不是隐藏参数。

找到了参数,可以看看它们在element中对应的具体值是什么,以下是实现的方法,主要就是对Python中BeautifulSoup包的使用。

from bs4 import BeautifulSoup

import requests

import json

html_page = "page_source.html"

def extract_data(page):

data = {"eventvalidation": "",

"viewstate": ""}

with open(page, "r") as html: #注意这里要先打开文件

soup = BeautifulSoup(html,'lxml') #这里对文件进行解析,lxml是解析的方式

ev = soup.find(id='__EVENTVALIDATION')

#以__EVENTVALIDATION为关键词进行查找,注意要加上id=,把结果保存到ev当中

data['eventvalidation'] = ev['value']

#提取ev的值,注意不能直接令它为字典的值,而要用value作为索引

vi = soup.find(id='__VIEWSTATE')

data['viewstate'] = soup.find('viewstate')

return data

也就是说,如果要获取数据,这8个参数是必不可少的。至于如何抓取网页,留待下次记录。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171228G0ZJ3Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券