使用 BeautifulSoup 和 Selenium 抓取网站多个网页的内容

2024-01-20

我要废弃的网站是:

http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061 http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061

我想获取上面链接的最后页码以继续进行,在截图时为 499。

我的代码:

   from bs4 import BeautifulSoup 
   from urllib.request import urlopen as uReq
   from selenium import webdriver;import time
   from selenium.webdriver.common.by import By
   from selenium.webdriver.support.ui import WebDriverWait
   from selenium.webdriver.support import expected_conditions as EC
   from selenium.webdriver.common.desired_capabilities import         DesiredCapabilities

   firefox_capabilities = DesiredCapabilities.FIREFOX
   firefox_capabilities['marionette'] = True
   firefox_capabilities['binary'] = '/etc/firefox'

   driver = webdriver.Firefox(capabilities=firefox_capabilities)
   url = "http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061"

   driver.get(url)
   wait = WebDriverWait(driver, 10)
   soup=BeautifulSoup(driver.page_source,"lxml")
   containers = soup.findAll("ul",{"class":"pages table"})
   containers[0] = soup.findAll("li")
   li_len = len(containers[0])
   for item in soup.find("ul",{"class":"pages table"}) : 
   li_text = item.select("li")[li_len].text
   print("li_text : {}\n".format(li_text))
   driver.quit()

我需要帮助来找出代码中获取最后页码的错误。另外,如果有人给出相同的替代解决方案并提出实现我的意图的方法,我将不胜感激。


如果您想获取上述链接的最后页码以继续操作,即499你可以使用Selenium or Beautifulsoup如下 :


硒:

from selenium import webdriver

driver = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
url = "http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061"
driver.get(url)
element = driver.find_element_by_xpath("//div[@class='row pagination']//p/span[contains(.,'Reviews on Reliance Jio')]")
driver.execute_script("return arguments[0].scrollIntoView(true);", element)
print(driver.find_element_by_xpath("//ul[@class='pagination table']/li/ul[@class='pages table']//li[last()]/a").get_attribute("innerHTML"))
driver.quit()

控制台输出:

499

美丽汤:

import bs4
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq

url = "http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061"
uClient = uReq(url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
container = page_soup.find("ul",{"class":"pages table"})
all_li = container.findAll("li")
last_div = None
for last_div in all_li:pass
if last_div:
    content = last_div.getText()
    print(content)

控制台输出:

499
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 BeautifulSoup 和 Selenium 抓取网站多个网页的内容 的相关文章

随机推荐

  • 使用 C# 编码波斯语字符串

    我正在开发一个短信应用程序 使用C 对于通过 SMS 网关向客户发送交易警报 即 ATM 交易 的银行 该应用程序工作正常 唯一的问题是编码波斯语文本 它没有正确编码波斯语文本 以下是将波斯语文本编码为 UTF 16 格式的方法 publi
  • 如何从 .pb 转换为 .tflite?

    我使用创建了一个对象检测模型Pytorch然后转换自 pth to onnx进而 pb 但现在我需要将其转换为 tflite适用于 Android 应用程序 怎么做 这是我第一次 input arrays 64 3 224 224 outp
  • 编译Linux内核错误xt_CONNMARK.h

    由于非常具体的原因 我尝试编译 Linux 2 6 32 6 内核 并在内核中内置了多个模块 我已将根文件系统包含在 NFS 上 以尝试通过 LAN PXE 启动我自己的自定义救援 Live CD 在包含 ROOT NFS 所需的依赖项和模
  • 是否可以在不编写新文件的情况下将文本合成语音?

    我想使用 GCP 文本到语音 API 合成文本到语音 几乎我能找到的每个示例都会写入一个新文件 我想在该函数输入文本并通过计算机扬声器读取它时执行此操作 我一直在尝试转换 GCP 上传的代码 表示 你好 世界 我还没有找到一种方法可以在转换
  • 将 SelectSingleNode 与 XPath 结合使用会返回 NULL

    我尝试修改 XML 文件SelectSingleNode 文件的结构是
  • Rails 安装错误:“原子”本机 gem 需要安装构建工具[重复]

    这个问题在这里已经有答案了 我正在我的 Windows 上安装 Rails 3 我安装了最新的 ruby 2 0 0 并更新了 gems 但是当我使用 gem install Rails 安装 Rails 时 成功的消息来了 但最后我发现
  • 自定义字体连字

    我正在使用 Visual Studio Code 我看到所有这些很酷的字体连字 用于双等号和三等号 箭头等 我不禁想知道是否有任何方法可以向字体或 VS Code 添加新的自定义连字 我尝试进行一些网络搜索 但似乎找不到任何内容 例如 当我
  • Ansible 内置 Lineinfile 到 ~/.bashrc

    我对 ansible 比较陌生 所以如果这个问题遗漏了一些东西 我很抱歉 我的目标是添加一行 bashrc使用 ansible 文件 我认为最好的方法是ansible builtin lineinfile module 不幸的是 我已经运行
  • AttributeError:无法设置 python 列表属性的属性

    我正在与python docx来自分叉的库version https pypi org project bayoo docx 并且我在编辑元素列表时遇到问题 因为它被定义为属性 docx document Document property
  • 我什么时候应该使用 Rosette 的浅嵌入与深嵌入进行程序综合?

    一些教程Rosette https docs racket lang org rosette guide index html引入程序综合使用浅嵌入 https docs racket lang org rosette guide ch e
  • 无法使用无头模式 Selenium 定位元素

    由于 所有用户在访问我们的网站时必须使用谷歌浏览器 这一限制 我无法使用无头模式定位元素 此限制是由我们的管理员添加的 因此用户只能使用 Google Chrome 我的代码是 Test priority 1 public void set
  • 套接字和管道的 select.select 问题

    我目前正在编写一个使用管道和套接字的基本 python 脚本 管道当前保存来自 html 表单的传入数据 套接字建立与服务器的连接 以不同的时间间隔发送 TCP IP 命令 表单和服务器位于同一 LAN 但不同的计算机上 我的代码如下 us
  • MaterialiseCSS 卡片设计

    我正在尝试使用 Materializecss com 在我的个人网站中调整 Material Design 但是该框架仅提供在 CARD 设计之上排除其他图像的选项 我想实现如下链接 第 2 行 第 2 列 最后一张图片 中所示的目标 其中
  • 当列表初始化为空时使用 ngFor 创建 mat-option 元素

    当我在 能力 mat select 中选择一项技能时 我想更新 专业化 mat select 中的值 我使用以下命令将我的 var 与模型链接起来 ngModel 但它不会更新列表 我尝试使用 ngModel 角度和材质为 7 HTML
  • 使用 Keen IO 创建给定时间段内会话长度的直方图

    我们正在尝试构建给定时间段内会话长度的直方图 目前 我们有 sess start 和 sess end 事件 其中包含会话 id 和用户 id 我想知道计算这些数据的最佳方法是什么 可以使用漏斗 API 来实现吗 你结帐了吗Keen IO
  • Wolkenkit:用于授权和用户角色的 ACL

    我试图了解如何扩展 wolkenkit auth 层 假设我想要具有不同角色的用户 普通 主持人和管理员 normal用户可以查看和修改自己的内容 但不允许修改其他用户的内容 主持人用户可以修改所有条目 但无权删除除自己内容之外的任何内容
  • 与所有其他给定点具有最小曼哈顿距离的所有点 [优化]

    这里的问题是找到所有整数点的集合 它给出了给定点集的所有曼哈顿距离的最小总和 例如 让我们有一组给定的点 P1 P2 P3 Pn 基本问题是找到一个点 X 该点在距点 P1 P2 P3 Pn 的所有距离上具有最小总和 即 P1 X P2 X
  • 从 WebBackForwardList 获取 WebView 历史记录

    我如何使用 WebView 获取历史记录Web后退转发列表班级 我看了看文档页 http developer android com reference android webkit WebBackForwardList html但我无法理
  • Htaccess 重写规则 - 如果没有尾部斜杠则不起作用

    所以我有以下重写规则 RewriteRule a z0 9 php index php page 1 NC L QSA RewriteRule a zA Z0 9 index php shop 1 page index NC L QSA R
  • 使用 BeautifulSoup 和 Selenium 抓取网站多个网页的内容

    我要废弃的网站是 http www mouthshut com mobile operators Reliance Jio reviews 925812061 http www mouthshut com mobile operators