Python 如何将整个网页读入变量
我试图读取整个网页并将其分配给变量,但在执行此操作时遇到困难。该变量似乎只能保存页面源的前512行左右 我尝试使用readlines()将源代码的所有行打印到屏幕上,这样就得到了整个源代码,但我需要能够用regex解析它,所以我需要以某种方式将它存储在一个变量中。帮忙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()
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
或strings
。如果以后要解析变量,可以使用:
来自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)