网络服务本质是指你可以利用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个参数是必不可少的。至于如何抓取网页,留待下次记录。
本文来自企鹅号 - 何紫朝的一亩三分地媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文来自企鹅号 - 何紫朝的一亩三分地媒体
如有侵权,请联系 cloudcommunity@tencent.com 删除。