urllib 在尝试从网站提取 HTML 数据时一直冻结 - 我的代码正确吗?
urllib keeps freezing while trying to pull HTML data from a website - is my code correct?
我正在尝试在 Mac OS X 上构建一个简单的 Python 脚本算法,它有四个部分。
- 转到定义的网站并使用
urllib
获取所有 HTML
- 解析 HTML 数据以找到 table 个数字(使用
beautifulsoup
)
- 用这些数字做一个简单的计算
- 在 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']
我正在尝试在 Mac OS X 上构建一个简单的 Python 脚本算法,它有四个部分。
- 转到定义的网站并使用
urllib
获取所有 HTML
- 解析 HTML 数据以找到 table 个数字(使用
beautifulsoup
) - 用这些数字做一个简单的计算
- 在 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']