Python 如何将整个网页读入变量

Python 如何将整个网页读入变量,python,web-scraping,urllib2,Python,Web Scraping,Urllib2,我试图读取整个网页并将其分配给变量,但在执行此操作时遇到困难。该变量似乎只能保存页面源的前512行左右 我尝试使用readlines()将源代码的所有行打印到屏幕上,这样就得到了整个源代码,但我需要能够用regex解析它,所以我需要以某种方式将它存储在一个变量中。帮忙 data = urllib2.urlopen(url) print data 只给了我大约1/3的来源 data = urllib2.urlopen(url) for lines in data.readlines()

我试图读取整个网页并将其分配给变量,但在执行此操作时遇到困难。该变量似乎只能保存页面源的前512行左右

我尝试使用readlines()将源代码的所有行打印到屏幕上,这样就得到了整个源代码,但我需要能够用regex解析它,所以我需要以某种方式将它存储在一个变量中。帮忙

 data = urllib2.urlopen(url)
 print data
只给了我大约1/3的来源

 data = urllib2.urlopen(url)
 for lines in data.readlines()
      print lines
这给了我全部的来源


正如我所说,我需要能够用regex解析字符串,但我需要的部分不在我能够存储在变量中的前1/3中。

您可能正在寻找漂亮的汤:它是一个用于python的开源web解析库。祝你好运

您应该能够使用将整个文件读入字符串。这将为您提供完整的来源。差不多

data = urllib2.urlopen(url)
print data.read()
应该给你整个网页


从这里开始,不要用正则表达式解析HTML(这是一篇老掉牙的文章),而是使用一个专用的HTML解析器。或者,清理HTML并将其转换为XHTML(例如使用HTMLTidy),然后使用XML解析库,如标准。哪种方法最好取决于您的应用程序。

我还建议使用开源的web解析库,以便于工作,而不是使用正则表达式进行完整的HTML解析,任何方式都需要正则表达式进行url解析。

实际上,
打印数据
不应该提供任何HTML内容,因为它只是一个文件指针。正式文件:

此函数返回一个类似文件的对象

这就是我得到的:

print data
<addinfourl at 140131449328200 whose fp = <socket._fileobject object at 0x7f72e547fc50>>

您可以根据需要使用list
l
或string
s

如果以后要解析变量,可以使用:

来自gazpacho进口汤的

url=”https://www.example.com"
soup=soup.get(url)
str(汤)

这样,您就可以执行
find
s来提取您要查找的信息

与第一个示例相比,这个可能的副本不会给我更多的网页。
import urllib2
data = urllib2.urlopen(url)
l = []
s = ''
for line in data.readlines():
    l.append(line)
s = '\n'.join(l)