gpt4 book ai didi

python - 如何抓取 Quora 个人资料页面的 'More' 部分?

转载 作者:行者123 更新时间:2023-12-01 06:06:52 25 4
gpt4 key购买 nike

为了确定 Quora 上所有主题的列表,我决定从抓取个人资料页面开始,其中包含许多主题,例如http://www.quora.com/Charlie-Cheever/topics 。我从此页面中抓取了主题,但现在我需要从单击页面底部的“更多”按钮时加载的 Ajax 页面中抓取主题。我试图找到单击“更多”按钮时执行的 JavaScript 函数,但还没有成功。以下是 html 页面中可能相关的三个片段:

<div class=\"pager_next action_button\" id=\"__w2_mEaYKRZ_more\">More</div>
{\"more_button\": \"mEaYKRZ\"}

\"dPs6zd5\": {\"more_button\": \"more_button\"}

new(PagedListMoreButton)(\"mEaYKRZ\",\"more_button\",{},\"live:ld_c5OMje_9424:cls:a.view.paged_list:PagedListMoreButton:/TW7WZFZNft72w\",{})

你们中有人知道点击“更多”按钮时执行的 JavaScript 函数的名称吗?任何帮助将不胜感激:)

此时的 Python 脚本(遵循 this 教程)如下所示:

#just prints topics followed by Charlie Cheevers from the 1st page
#!/usr/bin/python
import httplib2,time,re
from BeautifulSoup import BeautifulSoup
SCRAPING_CONN = httplib2.Http(".cache")

def fetch(url,method="GET"):
return SCRAPING_CONN.request(url,method)

def extractTopic(s):
d = {}
d['url'] = "http://www.quora.com" + s['href']
d['topicName'] = s.findChildren()[0].string
return d

def fetch_stories():
page = fetch(u"http://www.quora.com/Charlie-Cheever/topics")
soup = BeautifulSoup(page[1])
stories = soup.findAll('a', 'topic_name')
topics = [extractTopic(s) for s in stories]
for t in topics:
print u"%s, %s\n" % (t['topicName'],t['url'])

stories = fetch_stories()

最佳答案

您可以在浏览器的 dom 检查器中的事件监听器下看到它。它是一个匿名函数,如下所示:

function (){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(l.elem,arguments):b}

这看起来是一个很难抓取的网站,您可以考虑使用 selenium。

关于python - 如何抓取 Quora 个人资料页面的 'More' 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com