我正在尝试抓取某个特定的网页。但是我无法找到其中的所有段落标记。
我已经完成了以下问题
Beautiful Soup findAll doen't find them all,但这似乎无法解决问题。
如果我点击页面底部的“加载更多评论”按钮,这是一个不断刷新的动态网页,可以加载其他内容。
代码:
from bs4 import BeautifulSoup
import requests
r = requests.get("http://www.cricbuzz.com/live-cricket-scores/18127")
data = r.text
soup = BeautifulSoup(data)
p = soup.find_all('p')
len(p)
10
print(p[9])
Boult到Hardik Pandya,四个,这可能是KKR比赛费用的错误。它不应该只是一个单一的。一个低满的折腾,Hardik无法找到任何高程。 他把球打到了很长时间,苏里亚很好地攻击了球,但他错位并且球潜入了
无论如何我能从这个网页上抓取整个评论数据吗?
答案 0 :(得分:1)
要获取所有评论,您可以使用网站API:http://push.cricbuzz.com/match-api/18127/commentary-full.json
。它以json格式返回所有数据,您可以轻松解析并提取所需内容:
import requests
r = requests.get('http://push.cricbuzz.com/match-api/18127/commentary-full.json').json()
all_comments = r['comm_lines']
# print first 10 comments
for comment in all_comments[:10]:
if 'comm' in comment:
print(comment['comm'])
答案 1 :(得分:0)
你得到的是段落p [9](p-tag)我想,你需要将打印语句放在循环中才能打印所有段落。像这样:
body = soup.body
for p in body.find_all('p')
print(p.text)