如何将整个网页读入变量

Ren*_*nce 7 python urllib2 web-scraping

我正在尝试阅读整个网页并将其分配给变量,但我很难做到这一点.该变量似乎只能保存页面源的前512行左右.

我尝试使用readlines()将源的所有行打印到屏幕上,这给了我完整的源代码,但我需要能够用正则表达式解析它,所以我需要以某种方式将它存储在变量中.救命?

 data = urllib2.urlopen(url)
 print data
Run Code Online (Sandbox Code Playgroud)

只给了我1/3的来源.

 data = urllib2.urlopen(url)
 for lines in data.readlines()
      print lines
Run Code Online (Sandbox Code Playgroud)

这给了我整个来源.

就像我说的,我需要能够用正则表达式解析字符串,但我需要的部分不是在我能够存储在变量中的前1/3中.

小智 5

您可能正在寻找美丽的汤:http://www.crummy.com/software/BeautifulSoup/ 这是一个用于python的开源Web解析库.祝你好运!


Ada*_*cin 5

您应该能够使用file.read()将整个文件读入字符串。这将为您提供全部信息。就像是

data = urllib2.urlopen(url)
print data.read()
Run Code Online (Sandbox Code Playgroud)

应该会给您整个网页。

从那里开始,不要使用regex解析HTML(此处是破旧的文章),而是使用专用的HTML解析器。或者,清理HTML并将其转换为XHTML(例如使用HTML Tidy),然后使用XML解析库(如标准ElementTree)。哪种方法最好取决于您的应用程序。