1

我想从这个页面 xxx 收集数据

我对 python 和 BeautifulSoup 的经验水平是初学者。但是,除了我在下面描述的问题外,我认为对于我需要做的事情来说,它不必非常先进

我需要从中收集数据的页面列出了 MLS 上列出的大多伦多地区的待售活动房产。在地图的右侧,您必须选择一些复选框才能获取数据,这就是我的问题所在。如果我使用浏览器,则使用本地 cookie 来记住以前的选择并显示数据

我想知道其中任何一个:1)如何在来自 Python 的初始请求中传递所有参数(选择) 2)如何在 Python 中使用 Chrome cookie,以便获得实际包含数据的页面返回

一个代码示例会很棒,但将我发送到我应该阅读的链接也可以。

非常感谢 PF

4

1 回答 1

1

如果您坚持使用 urllib2 而不是Requests,我建议您查看cookielib

这是一个例子:

import urllib2
import cookielib
from BeautifulSoup import BeautifulSoup

cookiejar = cookielib.CookieJar()
opener = urllib2.build_opener(
    urllib2.HTTPRedirectHandler(),
    urllib2.HTTPHandler(debuglevel=0),
    urllib2.HTTPSHandler(debuglevel=0),
    urllib2.HTTPCookieProcessor(cookiejar),
)

这样,您将创建一个cookiejar来保存 cookie,构建一个 opener 并建立您的 cookie 处理器并传递cookiejar. 这应该可以解决您的 cookie 问题。此时,不要使用urllib2.urlopen(url),只需使用您的自定义开瓶器:opener.open(url)

url = 'http://www.somesite.com/'
fp = opener.open(url)
html_object = BeautifulSoup(fp)
于 2013-02-19T15:55:37.670 回答