0

嗨,我正在尝试用 Python 解析网页。这个网页在禁区,所以我不能给出链接。在此网页中,您可以进行查询,然后将这些查询发布在添加到同一网页上的表中,但使用新的 url。当我解析页面时,我得到了除了表格之外的所有内容。

我注意到无论我的查询如何,网址总是相同的。所以我总是从我的解析器得到相同的结果,也就是没有查询结果的网页(表格)。但是,如果我检查网页(在 Chrome 中),那么表格及其结果将包含在 HTML 中。我的解析器看起来像这样:

import urllib.request
with urllib.request.urlopen("http://www.home_page.com") as url:
    s = url.read()
#I'm guessing this would output the html source code?
print(s)

然后我的问题是,是否有其他方法可以识别网页,以便我收到网页上发布的所有内容?

4

1 回答 1

0

将基于您的问题,我认为您正在寻找网络抓取技术

这就是我建议您可以使用正则表达来获取可以以特定模式表达的数据,
例如

import urllib,re
siteContent  = urllib.urlopen("http://example.com").read()
GetBoldWords = re.findall(r"<b>[\w\d ]+",siteContent)
print "Bold Words are :"
print getBoldWords

所以在这种情况下,您必须了解更多关于正则表达式(regular expression)并获得自己的模式

在某些特定情况下,您可能必须处理客户端(例如,您必须通过弹出页面提交查询,javascript或者您必须忽略其中一些alertjavascript然后您必须使用 Web 浏览器 api,您可以Selenium用来处理这种问题

于 2013-06-04T22:33:40.500 回答