Python 筛选美化组查找所有结果

Python 筛选美化组查找所有结果,python,beautifulsoup,Python,Beautifulsoup,我想从亚马逊收集一些书评。以下是我目前掌握的情况: import requests from bs4 import BeautifulSoup def data(site): url = site r = requests.get(url) soup = BeautifulSoup(r.text) y = soup.find_all("div", style = "margin-left:0.5em;") words = [] for item

我想从亚马逊收集一些书评。以下是我目前掌握的情况:

import requests
from bs4 import BeautifulSoup

def data(site):
    url = site
    r = requests.get(url)
    soup = BeautifulSoup(r.text) 
    y = soup.find_all("div", style = "margin-left:0.5em;")
    words = []
    for item in y:
        item = str(item.text).split()
        words.append(item)
    reviews = [" ".join(x) for x in words]
    return reviews

f = data('http://www.amazon.com/Dance-Dragons-Song-Fire-Book/product-reviews/0553801473/ref=cm_cr_pr_top_link_11?ie=UTF8&pageNumber=11&showViewpoints=0&sortBy=bySubmissionDateDescending')

除了评论之外,我还得到了一些无关的信息,比如作者、标题和认为评论有用的人数。有没有一种方法可以使用BeautifulSoup排除评论文本之外的所有内容?评论的文本没有类或样式属性,其他文本有(我想…),但我还没有找到过滤我的汤的方法。查找所有结果。非常感谢您的帮助。

所有评论都包含在
表格中,因此您可以先找到表格,然后从每个表格中提取评论文本

更改此行应该可以:

...
y = soup\
    .find('table', {'id' : 'productReviews'})\ # here you find the table
    .find_all("div", style = "margin-left:0.5em;")
...