我在 Python 中使用 urllib2
,我正在尝试从以下位置下载新闻故事列表:http://web.tmxmoney.com/news.php?qm_symbol=CM
但是,当我尝试从以下位置下载时,这是可行的: http://web.tmxmoney.com/news.php?qm_symbol=CM#qmpage2 (和后续页面),结果始终与第一页相同。
我正在使用以下命令将数据加载到字符串中:
contents = urllib2.urlopen(url).read()
我不确定数据是如何在后台加载到 php 页面中的,但它似乎是在加载后稍微发生的,而不是作为直接查询给定在 url 中发布的请求。
我已尝试使用 time.sleep()
并使用 urllib2.Request()
和 .urlopen()
来 try catch 更改当页面加载但没有成功时。
有谁知道如何让urllib2
获取后续页面的内容#qmpage2, #qmpage3, ...?
最佳答案
从检查页面来看,所有新闻页面似乎都在每次请求时呈现;页码的散列似乎会触发 javascript,它确定显示新闻的“页面”。您应该能够通过单个请求访问所有新闻故事(使用 BeautifulSoup,您可以使用 news = contents.find_all(class_="newsheadlines")
获取所有新闻页面的包含元素,并且从那里解析单个页面)。
关于Python urllib2 和动态加载的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35439323/