python请求加载大页面解决方案

2024-10-03 09:17:19 发布

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

我在打开一个包含Python lib请求的82000行的大页面时遇到了这个问题。在我尝试使用urllib2之前,出现了一个错误“IncompleteRead”

现在请求:

 r = requests.get(https://www.bhphotovideo.com/c/search?atclk=Model+Year_2016&Ns=p_PRICE_2|0&ci=13223&ipp=120&N=4110474291+4294948825+3665082495)
 page_source = r.content
 print page_source

源打印的结果不完整,我看到结束标记,但不是从文档开始!你知道吗

你知道如何加载这个网址的全部内容吗?82000行。你知道吗


Tags: httpscomsourcesearchgetlibwww错误
1条回答
网友
1楼 · 发布于 2024-10-03 09:17:19

大多数(如果不是全部)shell都有字符限制。将page_source保存到文件可确认requests.get返回整个页面:

import requests

r = requests.get('https://www.bhphotovideo.com/c/search?atclk=Model+Year_2016&Ns=p_PRICE_2|0&ci=13223&ipp=120&N=4110474291+4294948825+3665082495')
page_source = r.text
with open('test.txt', 'w') as f:
    f.write(page_source.strip())

文件内容以页的开头<!DOCTYPE html>开始。 还要注意,我使用.text而不是.content来获得页面源代码的更清晰表示。我还使用了.strip(),因为出于某种原因,这个页面的源代码以无用的'\n'开头。你知道吗

另一种方法是简单地打印page_source的前100个字符:

print(page_source[:100])
# <!DOCTYPE html>
# <! [if lt IE 7]>      <html class="ie lt-ie7"> <![endif] >
# <! [if IE 7]>   

相关问题 更多 >