【问题标题】:Unable to read HTML data correctly in Python 3无法在 Python 3 中正确读取 HTML 数据
【发布时间】:2017-04-13 10:37:14
【问题描述】:

我正在尝试在 Python 3 中读取以下页面的 HTML 数据:

http://dl.nlai.ir/UI/25d36bb4-72aa-43c1-af2d-086540db8aea/LRRView.aspx

我就是这样做的:

url=str(input('\n Paste URL here: '))    
url2=requests.get(url)
html=url2.text
print(html)

但它返回错误页面的内容。

我补充一下,你可能会在网络浏览器中遇到同样的错误页面,但为了避免这种情况,首先打开这个地址会解决它:

http://dl.nlai.ir/ui/forms/Index.aspx

您对正确读取数据的建议是什么?我想获取页面内容以从源页面中提取 base64 编码的字符串。

【问题讨论】:

  • 您可能遇到涉及 cookie 的错误。尝试向Index.aspx 页面发出请求,解析标头中收到的cookie,然后使用cookies=my_cookies) 将它们与您的请求一起传递
  • 我是Python初学者,不知道怎么设置cookies。你能详细说明一下吗?谢谢

标签: python html python-requests


【解决方案1】:

除非你先访问“http://dl.nlai.ir/ui/forms/Index.aspx”, 访问“http://dl.nlai.ir/UI/25d36bb4-72aa-43c1-af2d-086540db8aea/LRRView.aspx”会得到错误的 html。所以我猜你需要 session 获取 url,像这样

s = requests.Session()
url1 = 'http://dl.nlai.ir/ui/forms/Index.aspx'
url = 'http://dl.nlai.ir/UI/25d36bb4-72aa-43c1-af2d-086540db8aea/LRRView.aspx'
s.get(url1)
url2 = s.get(url)
html = url2.text
print(html)

【讨论】:

  • 谢谢,很好的回答。虽然我也必须设置标题,因为它显示有关“不支持的浏览器”的错误。
  • 在尝试了几次之后,他们似乎限制了对[我的 IP 或会话等] 的访问,并且它显示一个页面“您无权查看此区域”,是吗?也可以绕过这个限制吗?
  • 试试这个:添加标头信息并使用代理 ip。您的 IP 可能会被网站禁止。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2017-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多