用Python和python3.65抓取网页

2024-09-26 18:06:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我不是程序员,但我正在努力自学Python,这样我就可以从不同的网站上获取我正在从事的项目的数据。我使用的是“自动处理无聊的东西”,但我很难让示例与我试图从中提取数据的某个页面一起工作。在

我在python3.65中使用Anaconda作为提示。以下是我所做的:

步骤1:创建美丽的汤对象

import requests, bs4
res = requests.get('https://www.almanac.com/weather/history/zipcode/02111/2017-05-15')
res.raise_for_status()
weatherTest = bs4.BeautifulSoup(res.text)
type(weatherTest)

这是有效的,并返回结果

^{pr2}$

我假设原文中的“noStarchSoup”(代替weatherTest)是作者给对象起的一个名称,我可以将它重命名为与我更相关的东西。如果不准确,请告诉我。在

第2步:从html中拉出一个元素

这就是我被困的地方。作者刚刚提到了如何将一个页面下拉到一个文件中(我不想这样做,我想使用bs4对象),但随后使用该文件作为html数据的源。示例文件是他下载的文件。在

import bs4
exampleFile = open('https://www.almanac.com/weather/history/zipcode/02111/2017-05-15')

我试过用weatherTest代替exampleFile,我试过用原始对象名(noStarchSoup)运行整个程序,甚至用exampleFile尝试过,尽管我还没有下载文件。在

我得到的是

"OSError: [Errno 22] Invalid argument: 'https://www.almanac.com/weather/history/zipcode/02111/2017-05-15'

下一步是告诉它要拉什么元素,但我要先修复这个错误,然后在这里旋转我的轮子。在


Tags: 文件数据对象httpscom示例wwwres

热门问题