需要使用“显示更多”按钮从网页中抓取信息,有什么建议吗?

2024-01-01

目前出于教育原因正在开发“爬虫”,

一切工作正常,我可以提取 url 和信息并将其保存在 json 文件中,一切都很好......除了

该页面有一个“加载更多”按钮,我需要与之交互,以便爬虫继续寻找更多网址。

这就是我可以利用你们这些出色的男孩和女孩的地方!

关于如何执行此操作有什么建议吗?

我想与“加载更多”按钮进行交互,并将 HTML 信息重新发送到我的爬虫。

真的非常感谢你们的帮助!

网站:http://virali.se/photo/gallery/ http://virali.se/photo/gallery/

用于查找公司名称的示例代码:

def base_spider(self, max_pages, max_CIDS):
    url = "http://virali.se/photo/gallery/photog/"  # Input URL

    for pages in range(0, max_pages):
        source_code = requests.get(url)  # gets the source_code from the URL
        plain_text = source_code.text  # Pure text transform for BeautifulSoup
        soup = BeautifulSoup(plain_text, "html.parser")  # Use HTML parser to read the plain_text var
    for article in soup.find_all("article"):
            business_name_pattern = re.compile(r"<h1>(.*?)</?h1>")
            business_name_raw = str(re.findall(business_name_pattern, str(article)))
            business_name_clean = re.sub("[\[\]\'\"]", "", business_name_raw)
            self.myprint(business_name_clean)  # custom print function for weird chars

此代码仅查找企业名称,但是如果不与网址上的“显示更多结果”按钮进行交互,那么当然,它将耗尽可供搜索的企业名称。


如果您使用开发人员工具(我使用 Chrome)查看该网站,那么您可以看到当您单击“显示更多结果”按钮时会触发 XHR post 请求。

在这种情况下,您可以模拟此请求来收集数据:

with requests.Session() as session:
    response = session.post("http://virali.se/photo/gallery/search", data={'start':0})
    print(response.content)

“魔力”就在data的参数session.post:这是从此偏移量加载图像所需的参数。在上面的例子中0是您在网站上默认看到的第一组图像。

你可以解析response.content与美丽汤。

我希望这可以帮助您入门,虽然该示例使用 Python 3,但也可以用 Python 2 以相同的方式解决(不使用with构造)。

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

需要使用“显示更多”按钮从网页中抓取信息,有什么建议吗? 的相关文章

  • 当鼠标悬停时使用 matplotlib 注释绘图的线条[重复]

    这个问题在这里已经有答案了 我想在鼠标悬停时在绘图上注释不同的线 这里用点进行相同的操作当鼠标悬停在 matplotlib 中的某个点上时可以显示标签吗 https stackoverflow com questions 7908636 p
  • Python2 math.fsum 不准确?

    我正在使用 python2 数学模块来计算 fsum 的总和 据我所知 0 1通常不能存储二进制 据我了解 math fsum 应该以某种方式解决这个问题 import math math fsum 0 0 0 1 0 1 math fsu
  • 在 Windows 中安装 IPOPT 求解器以与 pyomo 一起使用

    如何安装 IPOPT 求解器以在 Windows 中与 pyomo 一起使用 我尝试了 pip install ipopt 但收到此错误 错误 为 ipopt 构建轮子失败 我正在使用 Windows 10 和 Python 3 7 4 在
  • 如何在Tensorflow中读取json文件?

    我正在尝试编写一个函数 用于读取张量流中的 json 文件 json 文件具有以下结构 bounding box y 98 5 x 94 0 height 197 width 188 rotation yaw 27 970195770263
  • 如何实例化具有已知系数的 Scikit-Learn 线性模型而不进行拟合

    背景 作为实验的一部分 我正在测试各种保存的模型 但其中一个模型来自我编写的算法 而不是来自 sklearn 模型拟合 但是 我的自定义模型仍然是线性模型 所以我想实例化一个LinearModel实例并设置coef and intercep
  • 如何在不使用pygame的情况下检测按键事件和按键按住事件

    我目前正在寻找一个能够检测 监视键盘的库 我的目的是检测何时按下某个键 以及当它发生时应该发生一些事情 大多数 SO 帖子建议使用 pygame 但我发现它有点太多了 涉及一个像这样的库来完成这个简单的任务 我也尝试过pynput 这导致只
  • Keras ImageDataGenerator 验证分割未从打乱的数据集中选择

    如何将图像数据集随机拆分为训练数据集和验证数据集 更具体地说 validation splitKeras 中的论证ImageDataGenerator函数不是随机地将我的图像分割为训练和验证 而是从未洗牌的数据集中分割验证样本 当指定val
  • 视频的 EXIF 之类的东西

    有没有从视频文件中获取信息的标准方法 对于图像 我们有 EXIF 数据 可用于获取有关图像文件的日期 时间 大小等信息 我想知道视频是否也有这样的东西 用例是 我有很多用数码相机拍摄的视频 我想将它们重命名为更有意义的名称 例如 YYYY
  • OSMNX - 边缘的哪个“部分”被认为是最近的

    我正在使用 OSMNX 中的 returned edges 函数 我不清楚在进行此计算时使用边缘的哪个 部分 它是边缘的任何部分吗 是中间点吗 对于网络中的长边来说 这会产生很大的差异 这取决于您如何参数化该函数 来自nearest edg
  • 我收到类似 Error in if (file.access(phantompath, 1) < 0) { 的错误:当我使用 Phantomjs(p​​ort = 4567l) 时,参数的长度为零

    我的代码是 library RSelenium library wdman pDrv lt phantomjs port 4567L 以下是运行上述代码后出现的错误 checking phantomjs versions BEGIN PRE
  • 从 FTP 服务器上的 ZIP 存档读取文件,无需下载到本地系统

    我在 FTP 服务器上的目标文件是 ZIP 文件 CSV 位于更远的两个文件夹中 我如何才能使用 BytesIO 让 pandas 读取 csv 而无需下载它 这是我到目前为止所拥有的 ftp FTP FTP SERVER ftp logi
  • 我可以使用对象(类的实例)作为 Python 中的字典键吗?

    我想使用类实例作为字典键 例如 classinstance class dictionary classinstance hello world Python似乎无法将类作为字典键处理 还是我错了 另外 我可以使用像 classinstan
  • 如何使用VBscript刷新ICE上的所有网页?

    我正在尝试使用 vb 脚本在 IE 上打开几个不同的网站 它们将每 10 秒刷新一次所有网页 但现在我有了这个代码 它只能刷新第一个网页 第二个网页根本不刷新 你能帮忙解决这个问题吗 多谢 Set objExplorer CreateObj
  • 无法通过蓝牙读取心率服务

    我希望创建一个简单的 python 脚本 通过蓝牙从 Polar 传感器读取心率数据 我已经阅读了很多其他帖子 但找不到我能够成功执行的简单内容 我有 Polar 可穿戴设备的设备 MAC 地址 我知道我想要读取的值的服务 UUID HR
  • 站点访问期间未找到网络路径错误

    我刚刚将我的 ASP NET 网站从一台主机迁移到另一台主机 在旧主机上运行正常 但在新主机上出现此错误 Server Error in Application The network path was not found Descript
  • Numpy 相当于 if/else 不带循环

    有没有任何Pythonic方法可以删除下面代码中的for循环和if else 此代码迭代 NumPy 数组并检查条件并根据条件更改值 gt gt gt import numpy as np gt gt gt x np random rand
  • Python Blowfish 加密

    由于我对 Java 的了解不完整 我正在努力将此加密代码转换为 Python 代码 两者应该得到完全相同的结果 帮助将不胜感激 Java函数 import javax crypto Cipher import javax crypto sp
  • MySQL:进行基本搜索

    我的数据库中有一个名称表 我希望对其进行模糊搜索 例如我的数据库包含 Name ID John Smith 1 Edward Smith 2 Gabriel Gray 3 Paul Roberts 4 目前 当我通过 python 搜索数据
  • 使用 Python 和 lxml 从 HTML 中删除类属性

    Question 如何使用 python 和 lxml 从 html 中删除类属性 Example I have p class DumbClass Lorem ipsum dolor sit amet consectetur adipis
  • 命名空间与常规包

    命名空间 Python 包之间有什么区别 没有 init py 和一个常规的Python包 有一个 init py 特别是当 init py普通包裹是空的吗 我很好奇 因为最近我忘记了 init py在我制作的包中 我从未注意到任何问题 事

随机推荐