Python网页抓取无法找到网页中的所有代码

时间:2017-04-10 05:04:33

标签: python web-scraping

我正在尝试抓取某个特定的网页。但是我无法找到其中的所有段落标记。

我已经完成了以下问题

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无法找到任何高程。   他把球打到了很长时间,苏里亚很好地攻击了球,但他错位并且球潜入了

无论如何我能从这个网页上抓取整个评论数据吗?

2 个答案:

答案 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)