使用 BeautifulSoup 解析 Javascript 按钮元素中的 HTML
Parsing HTML within Javascript button elements with BeautifulSoup
我一直在使用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 是如何动态生成的。也就是说,我可以在 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'
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素