【问题标题】:Scraping HTML data with JavaScript or Python使用 JavaScript 或 Python 抓取 HTML 数据
【发布时间】:2019-11-04 21:08:07
【问题描述】:

我想从 html 中抓取数据并将其保存到文本文件中我有 URL 请你 如果 JavaScript 或 python 更可取,我可以尝试

# Import libraries
import requests
import urllib2
import time from bs4
import BeautifulSoup

# Set the URL you want to webscrape from
url = 'theweathernetwork.com/ca/hourly-weather-forecast/ontario/london'

# Connect to the URL
response = requests.get(url)

# Parse HTML and save to BeautifulSoup object
soup = BeautifulSoup(response.text, "html.parser")

# To download the whole data set, let's do a for loop through all a tags

【问题讨论】:

  • 你能展示一些你已经尝试过的东西吗?
  • 我没有尝试任何东西我正在谷歌搜索
  • 我可以把网址和我想提取的数据发给你
  • 首先,研究您的问题。然后,如果您没有找到答案,请在此处使用您已经尝试过的代码提出问题
  • 嘿@MaryMekhael,欢迎来到stackoverflow!请查看stackoverflow.com/help/how-to-ask。您应该尝试更准确地描述您正在尝试做的事情。

标签: javascript python web-scraping beautifulsoup


【解决方案1】:

您可以从 api 获取数据(通过查看 DevTools -> XHR 找到)。但是,如果您要获取 html,则需要使用 selenium 之类的东西才能呈现页面,然后获取 html 源代码。

因此,不确定这是否是您想要的,但数据就在那里,您可以提取您想要提取的任何内容。这是每小时数据的示例。

import requests
import pandas as pd

url = 'https://www.theweathernetwork.com/api/data/caon0383/hourly/cm/ci?ts=1012'

jsonData = requests.get(url).json()

df = pd.DataFrame(jsonData['hourly']['periods'])

输出:

print (df.to_string())
                   b cc_class                  cdate  cloud_coverage dayname_alt dewpt_unit   dn   f  fc feelsLikeNight_unit fu   hour       ic icon              ii                        it   ms   n pop_class  pp      r  rain_bar_height rain_unit_language rain_value  rr  ru      s         sd  showrainunit  showsnowunit sky_tenths  snow_bar_height snow_unit_language snow_value  sr  su   t  tc tmau tmu            tsg            tsl tu   w  wd  wg wgk   wgu  wk    wu   wx
0            default      cc9    Tuesday, November 5              90         Tue          C  Tue   0   0                   C  C   6 am    sunny    8       chart-sun             Mainly cloudy  Nov   1      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          9                0                NaN          -   0  cm   4   4    C   C  1572951600000  1572933600000  C  14   W  21  21  km/h  14  km/h  O-N
1            default      cc7    Tuesday, November 5              70         Tue          C  Tue   0   0                   C  C   7 am    sunny    3    chart-stormy   A mix of sun and clouds  Nov   2      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          7                0                NaN          -   0  cm   4   4    C   C  1572955200000  1572937200000  C  16   W  24  24  km/h  16  km/h    B
2            default      cc7    Tuesday, November 5              70         Tue          C  Tue   0   0                   C  C   8 am    sunny    3    chart-stormy   A mix of sun and clouds  Nov   3      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          7                0                NaN          -   0  cm   4   4    C   C  1572958800000  1572940800000  C  20   W  29  29  km/h  20  km/h    B
3            default      cc7    Tuesday, November 5              70         Tue          C  Tue   0   0                   C  C   9 am    sunny    3    chart-stormy   A mix of sun and clouds  Nov   4      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          7                0                NaN          -   0  cm   4   4    C   C  1572962400000  1572944400000  C  22   W  33  33  km/h  22  km/h    B
4            default      cc7    Tuesday, November 5              70         Tue          C  Tue   1   1                   C  C  10 am    sunny    3    chart-stormy   A mix of sun and clouds  Nov   5      pop2  20      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          7                0                NaN          -   0  cm   5   5    C   C  1572966000000  1572948000000  C  24   W  37  37  km/h  24  km/h    B
5            default      cc6    Tuesday, November 5              60         Tue          C  Tue   0   0                   C  C  11 am    sunny    3    chart-stormy   A mix of sun and clouds  Nov   6      pop2  20      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          6                0                NaN          -   0  cm   5   5    C   C  1572969600000  1572951600000  C  28   W  42  42  km/h  28  km/h    B
6            default      cc6    Tuesday, November 5              60         Tue          C  Tue   1   1                   C  C  12 pm    sunny    3    chart-stormy   A mix of sun and clouds  Nov   7      pop2  20      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          6                0                NaN          -   0  cm   6   6    C   C  1572973200000  1572955200000  C  29   W  44  44  km/h  29  km/h    B
7            default      cc6    Tuesday, November 5              60         Tue          C  Tue   3   3                   C  C   1 pm    sunny    3    chart-stormy   A mix of sun and clouds  Nov   8      pop2  20      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          6                0                NaN          -   0  cm   7   7    C   C  1572976800000  1572958800000  C  29   W  44  44  km/h  29  km/h    B
8            default      cc6    Tuesday, November 5              60         Tue          C  Tue   2   2                   C  C   2 pm    sunny    3    chart-stormy   A mix of sun and clouds  Nov   9      pop2  20      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          6                0                NaN          -   0  cm   6   6    C   C  1572980400000  1572962400000  C  27   W  41  41  km/h  27  km/h    B
9            default      cc7    Tuesday, November 5              70         Tue          C  Tue   2   2                   C  C   3 pm    sunny    3    chart-stormy   A mix of sun and clouds  Nov  10      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          7                0                NaN          -   0  cm   6   6    C   C  1572984000000  1572966000000  C  24   W  36  36  km/h  24  km/h    B
10           default      cc8    Tuesday, November 5              80         Tue          C  Tue   1   1                   C  C   4 pm    sunny    4  chart-overcast  Cloudy with sunny breaks  Nov  11      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          8                0                NaN          -   0  cm   5   5    C   C  1572987600000  1572969600000  C  23   W  35  35  km/h  23  km/h   B+
11           default      cc7    Tuesday, November 5              70         Tue          C  Tue   1   1                   C  C   5 pm    sunny   20  chart-overcast             Partly cloudy  Nov  12      pop3  30      -                0                NaN          -   0  mm      -  Tue Nov 5         False         False          7                0                NaN          -   0  cm   5   5    C   C  1572991200000  1572973200000  C  23   W  35  35  km/h  23  km/h   BN
12           ...

【讨论】:

  • 我试过了,还是不行我安装pandas也有问题
  • 什么不起作用?你得到什么错误信息? “安装熊猫时遇到问题”是什么意思?您需要提供细节,否则很难排除故障并提供解决方案。如果您在安装 Pandas 时遇到问题,则可能存在更大的潜在问题。 Pandas 是一个广泛使用和支持的软件包。您甚至可能不需要使用熊猫,但您最初的问题并没有准确说明您想要什么作为输出。我只是假设您想要某种包含数据的表格,但您可以简单地将 json 写入文件。
  • 我很抱歉,但我只是用我的网址替换你的网址,但我收到错误提示我没有安装熊猫,是否可以使用任何其他语言,如 javascript,我需要的只是数据最后的文本文件也可能是 vbs,但我无法在我正在使用的这个网站上找到任何解决方案
  • 嗨,我去了,我使用了一种不同的方法/脚本语言,我现在正在使用 vbs,我现在唯一坚持的部分是 Mtime1 = objIE.document.getElementsByClassName("wxperiod temp")(0) .innerHtml 显然它不允许 2 个类名我想知道如何解决这个问题,或者 HTML 是我的合成:2 我想得到“2”?这就是我现在卡住的地方
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2020-06-03
  • 2012-04-20
  • 1970-01-01
  • 2020-04-23
  • 2021-12-24
  • 2011-01-10
相关资源
最近更新 更多