使用 BeautifulSoup 解析 facebook
Posted
技术标签:
【中文标题】使用 BeautifulSoup 解析 facebook【英文标题】:Using BeautifulSoup to parse facebook 【发布时间】:2013-09-30 04:47:33 【问题描述】:所以我正在尝试使用 BeautifulSoup 解析公共 facebook 页面。我已经成功地抓取了 LinkedIn,但我花了几个小时试图让它在 facebook 上运行,但没有成功。我尝试使用的代码如下所示:
for urls in my_urls:
try:
page = urllib2.urlopen(urls)
soup = BeautifulSoup(page)
info = soup.find_all("div", class_="fsl fwb fcb")
info2 = info.findall('a')
令我沮丧的部分是我可以取出标题元素,我什至可以深入到文档中,但我无法到达我需要的部分。
这一行成功抓取了pageTitle:
info = soup.find_all("title", attrs="id": "pageTitle")
这条线可以在元素列表中走得很远,但不能走得更远。
info = soup.find_all(id="pagelet_timeline_main_column")
这是我正在尝试解析的示例页面,我想从中获取当前城市:
https://www.facebook.com/100004210542493
下面是我想要的部分的快速截图:
http://prntscr.com/1t8xx6
我觉得我真的很接近,但我就是想不通。提前感谢您的帮助!
编辑 2:我还应该提到,我可以成功打印整个汤并在视觉上找到我需要的部分,但无论出于何种原因,解析都无法正常工作。
【问题讨论】:
【参考方案1】:尝试使用 curl 或 wget 查看返回的内容。您在浏览器中看到的是执行 javascripts 后呈现的内容。
wgethttps://www.facebook.com/100004210542493
您可能想要使用 memchanize 或 selenium,因为您想要模拟客户端浏览器(而不是处理原始内容)。
另一个与之相关的问题可能是Beautiful Soup cannot find a CSS class if the object has other classes, too
【讨论】:
您好,感谢您抽出宝贵时间帮助我。对不起,我还在学习,我不确定我是否明白你在说什么。如何去除评论标签?搜索将我带到这里:***.com/questions/3507283/… 但我似乎无法弄清楚。 不,我已经更新了答案。查看原始内容而不是使用浏览器。或者做 -response = urllib2.urlopen('facebook.com/100004210542493') 然后 -response.read() 查看内容 好吧,所以当我运行它时,我得到以下响应: >网址现在,或出错。 我也在尝试机械化,但不断收到另一个错误:“httperror_seek_wrapper:HTTP 错误 403:robots.txt 不允许请求” 嘿,我只是想说感谢您之前的输入。我设法使用机械化和重新获得它。不过,您的评论帮助我找到了正确的思路,谢谢!以上是关于使用 BeautifulSoup 解析 facebook的主要内容,如果未能解决你的问题,请参考以下文章