python刮/获取aspx数据查询

时间:2018-08-31 21:35:39

标签: python asp.net web-scraping

我正在尝试使用python https://safer.fmcsa.dot.gov/CompanySnapshot.aspx

从该站点抓取数据

我阅读了一些解释,但对于请求标头仍然感到困惑。通过DOT#或公司名称抓取上述网站/搜索的python代码是什么?

谢谢。

2 个答案:

答案 0 :(得分:0)

该站点是一个简单的填充页面。出于安全方面的考虑,您不能从此页面上抓取DOT#或公司名称,因为标头将通过发送输入POST方法从服务器请求数据。对于真正的抓取数据,您可以使用蛮力方法或使用字典并按以下方式发送持续向服务器发送预测查询,以查找正确的查询。

答案 1 :(得分:0)

我查看了网站,发现可以使用单选按钮输入3种类型的值,即USDOT编号,MC / MX编号,名称。名称以类似https://safer.fmcsa.dot.gov/keywordx.asp?searchstring=%2A{name_search}%2A&SEARCHTYPE=ANY的形式在GET中提供数据,您可以轻松获取通过仅用您的搜索名称替换{name_search}来请求此网址。

USDOT和MC / MX以POST格式请求发送到https://safer.fmcsa.dot.gov/query.asp,例如searchtype = ANY&query_type = queryCarrierSnapshot&query_param = {USDOT / MC_MX}&query_string = {your_number},您必须为其编写程序来获取它用于将该数据发送到服务器。

import requests
url = 'https://safer.fmcsa.dot.gov/query.asp'
data = {'searchtype':'ANY','query_type':'queryCarrierSnapshot',
'query_param':'USDOT','query_string':'529136'}
r = requests.post(url = url,data = data)
print(r.text)