如何解析点击按钮后显示额外文本的网站中的文本,但该文本不在基本html中
How to parse text in websites that display additional text after clicking a button, but that text is not in the base html
我正在尝试抓取此页面上的所有博客链接:http://hypem.com/track/26ed4/Skizzy+Mars+-+Way+I+实时
单击更多可显示链接。但是,在html源中只有一个链接可见。我正在使用BeautifulSoup,如何获取其他链接?
您可以使用requests
+BeautifulSoup
方法。您只需要在单击More blogs
按钮并向下滚动页面时模拟发送到服务器的底层请求。
下面的代码打印了http://hypem.com/blogs页码:
from bs4 import BeautifulSoup
import requests
def extract_blogs(content):
first_page = BeautifulSoup(content)
for link in first_page.select('div.directory-blog img'):
print link.get('title')
# extract blogs from the main page
response = requests.get('http://hypem.com/blogs')
extract_blogs(response.content)
# paginate over rest results until there would be an empty response
page = 2
url = 'http://hypem.com/inc/serve_sites.php?featured=true&page={page}'
while True:
response = requests.get(url.format(page=page))
if not response.content.strip():
break
extract_blogs(response.content)
page += 1
打印:
Heart and Soul
Avant-Avant
Different Kitchen
Ladywood
Orange Peel
Phonographe Corp
...
Stadiums & Shrines
Caipirinha Lounge
Gorilla Vs. Bear
ISO50 Blog
Fluxblog
Music ( for robots)
希望这至少能让你对如何在这种情况下抓取网页内容有一个基本的想法。
相关文章:
- 我收到消息“资源解释为脚本,但使用 MIME 类型文本/html 传输”
- 如何使按钮单击并更改以前显示的文本(html)
- 使用 Javascript 解析电子邮件源的文本/html 部分
- Javascript/jQuery,将CSS应用于包含特定文本/html的元素
- jQuery文本html操作,以查找大量文本中出现的字符,然后更改其颜色
- 使用 Jquery 创建具有转义文本 + HTML 的元素
- 在空节点(如文本节点)中添加文本/html
- 从网站获取特定文本 (html)
- 如何解决“资源解释为脚本但使用 MIME 类型文本/html 传输”
- 请求 JSONP 时的文本/html 输出
- 将元素添加到 DOM 给定的纯文本 HTML 中,仅使用纯 JavaScript(没有 jQuery)
- 在gmail撰写邮件区域中获取选中/突出显示的文本html
- 如何确定是否在父元素的开始或结束存在文本?HTML DOM &JavaScript
- 在输入文本html中显示格式
- 如何使纯文本html javascript
- 资源解释为脚本,但传输MIME类型文本/html javascript
- 从Javascript传递文本- HTML- PHP
- 从DOM对象中获取文本/html
- 脚本类型=“文本/ html"从文件中包含HTML
- jsFiddler.NET中的文本/HTML编辑器