javascript - 使用 BeautifulSoup 解析 Javascript 按钮元素中的 HTML

标签 javascript python beautifulsoup python-requests

我一直在使用 Requests 和 BeautifulSoup 解析 Craigslist。我可以访问帖子和所有内容,但是当尝试访问帖子的“回复”电子邮件地址时,我似乎无法返回任何内容 - 假设是因为您必须首先“单击”回复按钮。

我想做的是如何获取此电子邮件地址。使用

reply = soup.findAll('div',{'class':'anonemail'})

reply = soup('button',{'class':'reply_button js-only'})

或包含电子邮件地址的元素上的任何变体都不会返回任何内容。

我可以手动访问回复网址,例如:

http://losangeles.craigslist.org/reply/lax/sof/4869445564

但我似乎无法找出这个网址是如何动态生成的。也就是说,我可以在 url 末尾手动提供/reply/lax/solf/(dataid),但我想知道如何从页面本身提取此 url,除非有更简单的方法来访问回复电子邮件地址。

最佳答案

url = 'http://losangeles.craigslist.org/wst/sof/4869468306.html';
soup = BeautifulSoup(urllib2.urlopen(url).read());
reply = soup.findAll('a', attrs = {"id": "replylink"});
if reply:
   url = 'http://losangeles.craigslist.org' + reply[0].get('href');
   soup = BeautifulSoup(urllib2.urlopen(url).read());    
   reply = soup.findAll(['div', 'a'], attrs = {"class": re.compile(r'anonemail|mailapp')});
   if reply:
      reply[0].getText()

返回:

u'qx8ft-4869445564@job.craigslist.org'

关于javascript - 使用 BeautifulSoup 解析 Javascript 按钮元素中的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28229306/

相关文章:

javascript - 图书馆项目 - 图书移除时更新对象

python - 是否可以将已编译的 .pyc 文件反编译为 .py 文件?

python - 链接抓取错误

python - 如何收集网页中的所有链接?

python - 如何使用 Beautiful Soup 拉取没有属性的 <p> 标签?

JavaScript for..in 语句在 IE8 中给出意想不到的结果

javascript - 减少 JavaScript 迭代

javascript - 无法通过unpkg使用MATERIAL-UI和React

python - 属性错误 : module 'cv2.cv2' has no attribute 'xfeatures2d' [Opencv 3. 4.3]

Python Paste 使用 Bottle 框架 Broken Pipe Error