如何使用BeautifulSoup4从Python网站上频繁更新.php文本?

如何使用BeautifulSoup4从Python网站上频繁更新.php文本?,python,beautifulsoup,Python,Beautifulsoup,我想创建一个自动脚本,从经常更新的网页下载.php文本文件。我的程序使用请求获取网页 守则: import os, pathlib, subprocess,requests, time, sys url = 'http://metar.vatsim.net/metar.php?id=all' current_dir = pathlib.Path(__file__).parent os.chdir(current_dir) icao = sys.argv[1] fp = reque

我想创建一个自动脚本,从经常更新的网页下载.php文本文件。我的程序使用请求获取网页

守则:

import os, pathlib, subprocess,requests, time, sys



url = 'http://metar.vatsim.net/metar.php?id=all'

current_dir = pathlib.Path(__file__).parent
os.chdir(current_dir)




icao = sys.argv[1]
fp = requests.get(url)
mybytes = fp.read()

mystr = mybytes.decode("utf8")
fp.close()

dict = {}

fls = str.splitlines(mystr)
for x in range(len(fls)):
    cur = str.split(fls[x])
    dict[cur[0]] = " ".join(cur)
    
try:
    print(dict[icao])
except:
    print('INCORRECT FORMAT OR AIRPORT ID\n')
当我尝试读取fp时,它显示错误:

mybytes = fp.read()
AttributeError: 'Response' object has no attribute 'read'

有没有更好的方法来解决这个问题,我有点卡住了。

你要找的是
urlib.request
,而不是
requests

也许这会奏效:

import urllib.request

fp = urllib.request.urlopen(url)
mybytes = fp.read()

mystr = mybytes.decode("utf8")
fp.close()

这将读取中的文本。

您完全可以使用请求。然后要提取
.text

另外,不要以您正在执行的方式覆盖内置的
dict

import requests

url = 'http://metar.vatsim.net/metar.php?id=all'
fp = requests.get(url)
mystr = fp.text
a_dict = {}

fls = str.splitlines(mystr)

for x in range(len(fls)):
    cur = str.split(fls[x])
    a_dict[cur[0]] = " ".join(cur)
    
try:
    print(a_dict)
except:
    print('INCORRECT FORMAT OR AIRPORT ID\n')

尝试使用
response=requests.get(url)
,然后使用
response.content
访问整个文件内容。