【问题标题】:Get data by using a query from a website [closed]使用来自网站的查询获取数据[关闭]
【发布时间】:2023-04-01 00:20:01
【问题描述】:

使用 Python 或 R,如何将以下网站的数据下载到数据框或类似格式?我认为这不是网络抓取,而是使用查询请求获取数据。

https://www.michigantrafficcrashfacts.org/querytool/lists/0#q1;0;2016;;

【问题讨论】:

  • 我不明白为什么,但人们疯狂地反对这个问题。我猜这个问题不符合这个网站的高级人员。然后你像魔鬼一样被投下。

标签: python r web-scraping screen-scraping


【解决方案1】:

您不需要制作网络爬虫,我观察了对该网站的所有请求,然后我用我的工具对这些请求进行了解码......,请参阅:

1) https://www.michigantrafficcrashfacts.org/qjson?q=1;0;2016;;&v=list&p=0,0:0,77|0|90|0,asc:1,asc || 90条记录为json

2) https://www.michigantrafficcrashfacts.org/qjson?q=1;0;2016;;&v=list&p=0,0:0,77|0|2000|0,asc:1,asc || 2000 条记录为 json

import json, requests

your_records = 3000  # change this record with that number you want ( that website said the max value is 312172 )

URL = "https://www.michigantrafficcrashfacts.org/qjson?q=1;0;2016;;&v=list&p=0,0:0,77|0|{0}|0,asc:1,asc".format(your_records)

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

get_data = requests.get(URL, headers=headers)

raw_data = str(get_data.content, encoding="utf-8")

dict_data = json.loads(raw_data)

for items, values in dict_data.items():
    print(items, values)

注意:请不要在非法或骇人听闻的情况下使用它。

【讨论】:

  • 嘿伙计,我很感激。这对我来说是一个很好的开端。您是如何想到链接中的其余项目的?当我选择 cols 和东西时,它什么也不显示。链接仍然保持不变。有没有办法在浏览器中显示完整路径,默认设置为不显示以便看起来更漂亮?
  • @ilyas:欢迎您 :) 您看到第一个和第二个样本了吗?您可以在浏览器中打开这些链接,但完整的数据量很大!我回答了你关于如何下载超过 90 个网站数据的问题......关于你应该如何解析它们或其他任何问题,你应该问一个新问题,对于这个特殊问题,我们不能在 cmets 盒子上谈论太多.但我应该说没有漂亮的链接可以在浏览器中使用,这与我的代码或其他任何内容无关,该网站加密了他们的请求....
  • @ilyas:你知道应该如何处理 json 数据吗?
  • OK 您的代码有效。我很感激。该网站在提供查询的地方提供共享查询,我在您回答后才意识到。但是,查询的开头如下:“michigantrafficcrashfacts.org/querytool/lists/0#q1;0;2016;;&p0,0:0,10:0,11:0,12 ....”。您使用不同的查询链接。这是你自己根据经验提出的吗?你是怎么想出来的?当我使用网站提供的查询时,您使用 json.loads() 的代码的最后一部分不起作用。
  • 我的意思是“qjson”。原始查询链接没有那个。它有 q1
猜你喜欢
  • 2016-05-03
  • 2013-03-10
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2013-03-02
  • 1970-01-01
  • 2020-10-14
相关资源
最近更新 更多