urllib 在尝试从网站提取 HTML 数据时一直冻结 - 我的代码正确吗?

urllib keeps freezing while trying to pull HTML data from a website - is my code correct?

我正在尝试在 Mac OS X 上构建一个简单的 Python 脚本算法,它有四个部分。

  1. 转到定义的网站并使用 urllib
  2. 获取所有 HTML
  3. 解析 HTML 数据以找到 table 个数字(使用 beautifulsoup
  4. 用这些数字做一个简单的计算
  5. 在 table 中按数字顺序打印结果

我在执行第 1 步时遇到问题,我可以使用此代码urllib 获取数据

import urllib.request
y=urllib.request.urlopen('my target website url')
x=y.read()
print(x)

但是一旦返回 HTML 并且 Python shell 没有响应,它就会一直冻结。

既然你提到了请求,我认为这是一个很好的解决方案。

import requests
import BeautifulSoup

r = requests.get('http://example.com')
html = r.content
soup = BeautifulSoup(html)
table = soup.find("table", {"id": "targettable"})

正如 jonrsharpe 所建议的,如果您担心 url 返回的响应的大小,您可以在打印或解析之前先检查大小。

有请求:

r = requests.get('http://example.com')
print r.headers['content-length']