python - 使用 python 抓取网页
问题描述
我正在从https://www.consumeraffairs.com/privacy/transunion.html网站上抓取所有评论
page_list = []
def pagination(soup):
for i in range(0,32):
domain = "https://www.consumeraffairs.com/privacy/transunion.html?page="+str(i)
page_list.append(domain)
return page_list
pages = pagination(soup)
print(pages)
如何捕获这些页面下显示的评论
import time
comment_list = []
def get_comments(urls):
for url in urls:
try:
print(url)
#comment = soup.find_all('div',{'class':'rvw-bd'})
comment = soup.find_all('div',{'class':'rvw-bd'})
print(len(comment))
for x in range(len(comment)):
comment_list.append(comment[x].p.text.strip())
except:
continue
time.sleep(30)
return comment_list
comments = get_comments(pages)
我使用了这段代码,但它只删除了第一页的前 10 个。如何解决这个问题
解决方案
我认为您更改 url 中的“page=”值是正确的,但是从您发布的代码来看,您似乎并没有更改汤对象来表示每个新页面的内容。我重写了你的一些代码来做到这一点:
from bs4 import BeautifulSoup
import requests
import time
page_list = []
for i in range(0,32):
domain = "https://www.consumeraffairs.com/privacy/transunion.html?page="+str(i)
page_list.append(domain)
comment_list = []
for page in page_list:
try:
content = requests.get(page).content
soup = BeautifulSoup(content, 'html.parser')
#comment = soup.find_all('div',{'class':'rvw-bd'})
comment = soup.find_all('div',{'class':'rvw-bd'})
print(len(comment))
for x in range(len(comment)):
comment_list.append(comment[x].p.text.strip())
except:
continue
time.sleep(30)
print(comment_list)
print(len(comment_list))
让我知道这是否有帮助!
推荐阅读
- html - 以最小和最大长度和单个标签居中内容
- python - 添加 `if` 语句以在点赞数达到某个否时发送电子邮件
- swift - 在 SwiftUI 上调用 Api 后对象不更新
- python - Python。我正在尝试迭代地执行树的中序遍历,但我将进入一个无限循环
- java - 如何访问 ID 的值以找到平均值?
- javascript - 回调,JS执行顺序
- r - dplyr::mutate(cur_group_id) 无法识别分组
- https - 由 MBEDTLS 生成的 Chrome 拒绝证书
- javascript - 如何在javascript中放置laravel echo函数
- powershell - 运行 generate-vapid-keys --json web-push 时如何解决错误?