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

时间:2022-04-22
本文章向大家介绍数据分析进阶课程笔记(六),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

网络服务本质是指你可以利用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个参数是必不可少的。至于如何抓取网页,留待下次记录。