Python get 请求返回与查看源代码不同的 HTML

2024-01-03

我正在尝试从我们自己的 URL 存档中提取同人小说,以便使用 NLTK 库对其进行一些语言分析。然而,每次从 URL 中抓取 HTML 的尝试都会返回除同人小说(以及我不需要的评论表单)之外的所有内容。

首先我尝试使用内置的 urllib 库(和 BeautifulSoup):

import urllib
from bs4 import BeautifulSoup    
html = request.urlopen("http://archiveofourown.org/works/6846694").read()
soup = BeautifulSoup(html,"html.parser")
soup.prettify()

然后我发现了 Requests 库,以及用户代理如何成为问题的一部分,所以我尝试了同样的结果:

import requests
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',
        'Content-Type': 'text/html',
}
requests.get("http://archiveofourown.org/works/6846694",headers=headers,timeout=5).text

然后我发现了 Selenium 和 PhantomJS,所以我安装了它们并再次尝试 - 同样的结果:

from selenium import webdriver
from bs4 import BeautifulSoup
browser = webdriver.PhantomJS()
browser.get("http://archiveofourown.org/works/6846694")
soup = BeautifulSoup(browser.page_source, "html.parser")
soup.prettify()

我在这些尝试中是否做错了什么,或者这是服务器的问题?


如果您需要包含执行的所有 JavaScript 和发出的异步请求的完整页面源,最后一种方法是朝着正确方向迈出的一步。你只是错过了一件事——你需要给 PhantomJS 时间 http://selenium-python.readthedocs.io/waits.html#explicit-waits在阅读源代码之前加载页面(有意双关)。

并且,您还需要单击“继续”以表示您同意查看成人内容:

from bs4 import BeautifulSoup

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.PhantomJS()
driver.get("http://archiveofourown.org/works/6846694")

wait = WebDriverWait(driver, 10)

# click proceed
proceed = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Proceed")))
proceed.click()

# wait for the content to be present
wait.until(EC.presence_of_element_located((By.ID, "workskin")))

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

Python get 请求返回与查看源代码不同的 HTML 的相关文章

  • 关于使用Python启动SSH隧道的问题

    我在从用 Python 编写的 HTTP RPC 服务器启动 SSH 隧道时遇到了麻烦 基于Python的BaseHTTPServer 有一个用Python编写的简单的HTTP RPC服务器 作为其中一项服务的一部分 我想启动从 RPC 服
  • 如何测试顶级窗口是否打开?

    我感觉 Python 编程可能不是我的菜 我创建了一个 tkinter GUI 它使用按钮回调来打开另一个窗口 其他搜索说这个窗口应该是顶级窗口 并且它工作得很好 但是每次按下按钮时它都会打开另一个相同的窗口 如据我所知 窗口 问题 如何测
  • Python:多处理和请求

    以下是我正在运行的使用多处理并行触发 HTTP 请求的代码片段 在控制台上运行后 它挂在 requests get url 处 既不继续前进也不抛出错误 def echo 100 q print before r requests get
  • 同情因子简单关系

    我在 sympy 中有一个简单的因式分解问题 无法解决 我在 sympy 处理相当复杂的积分方面取得了巨大成功 但我对一些简单的事情感到困惑 如何得到 phi 2 2 phi phi 0 phi 0 2 8 因式分解 phi phi 0 2
  • 运行源代码中包含 Unicode 字符的 Python 2.7 代码

    我想运行一个在源代码中包含 unicode utf 8 字符的 Python 源文件 我知道这可以通过添加评论来完成 coding utf 8 在一开始的时候 但是 我希望不使用这种方法来做到这一点 我能想到的一种方法是以转义形式编写 un
  • Keras,如何获取每一层的输出?

    我已经用 CNN 训练了一个二元分类模型 这是我的代码 model Sequential model add Convolution2D nb filters kernel size 0 kernel size 1 border mode
  • 在一张图中同时绘制两个截面强度

    我有一个形状数组 512 512 看起来像 行 x 列 y 密度 z 数组的数量 0 012825 0 020408 0 022976 0 015938 0 02165 0 024357 0 036332 0 031904 0 025462
  • 用于打印 C/C++ 文件的所有函数定义的 Python 脚本

    我想要一个 python 脚本来打印 C C 文件中定义的所有函数的列表 e g abc c定义两个函数为 void func1 int func2 int i printf d i return 1 我只想搜索文件 abc c 并打印其中
  • 如何通过 Python socket.send() 发送字符串以外的任何内容

    我对 Python 编程非常陌生 但出于必要 我必须快速地将一些东西组合在一起 我正在尝试通过 UDP 发送一些数据 除了当我执行 socket send 时 我必须以字符串形式输入数据之外 一切都正常 这是我的程序 这样你就可以看到我在做
  • Python NLP 英式英语与美式英语

    我目前正在用Python 进行NLP 工作 然而 在我的语料库中 既有英式英语也有美式英语 实现 实现 我正在考虑将英式英语转换为美式英语 但是 我没有找到一个好的工具 包来做到这一点 有什么建议么 我也找不到包 但试试这个 请注意 我必须
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • pandas apply:函数名是否带引号的区别

    简单数据框定义示例 df pd DataFrame A 2 4 1 B 8 4 1 C 6 2 7 df A B C 0 2 8 6 1 4 4 2 2 1 1 7 尝试理解以下块中函数参数调用的差异 df apply sum df app
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • 如何使用 python-gnupg 加密大型数据集而不占用所有内存?

    我的磁盘上有一个非常大的文本文件 假设它是 1 GB 或更多 还假设该文件中的数据有 n每 120 个字符一个字符 我在用python gnupg https pythonhosted org python gnupg 对此文件进行加密 由
  • Pandas - 分割大的Excel文件

    我有一个大约有 500 000 行的 Excel 文件 我想将其拆分为多个 Excel 文件 每个文件有 50 000 行 我想用熊猫来做 这样它会是最快和最简单的 有什么想法如何制作吗 感谢您的帮助 假设您的 Excel 文件只有一个 第
  • python 的 fcntl.flock 函数是否提供文件访问的线程级锁定?

    Python 的 fcnt 模块提供了一种名为 flock 1 的方法来证明文件锁定 其描述如下 对文件执行锁定操作op 描述符 fd 文件对象提供 fileno 方法被接受为 出色地 请参阅 Unix 手册集群 2 了解详情 在某些系统上
  • 提供节点名或服务名,或未知

    我收到这个 Python 错误 File Library Frameworks Python framework Versions 2 7 lib python2 7 urllib2 py line 1184 in do open rais
  • webdriver-manager 10.2.9 上的语法错误

    发帖自问题 170 https github com angular webdriver manager issues 170 更新到最新版本后 运行 webdriver manager 命令时出现以下错误 C Users user App
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • 如何将 TextBlock 设置为属性值?

    I used this http www c sharpcorner com uploadfile mahesh user control in wpf 构建自定义控件的教程 现在 我想向用户控件添加一条简单的消息 文本块 来为用户提供一些
  • 禁用 mongo docker 中的默认身份验证

    我想禁用默认身份验证 避免使用 mongo authenticationDatabase auth db 在 mongo 中使用 docker compose 这是我的docker 撰写 file version 2 services mo
  • 为什么增加 Nginx 中的worker_connections 会使应用程序在node.js 集群中变慢?

    我正在将我的应用程序转换为 Node js 集群 我希望它能够提高我的应用程序的性能 目前 我正在将该应用程序部署到 2 个 EC2 t2 medium 实例 我有 Nginx 作为代理和 ELB 这是我的 Express 集群应用程序 从
  • Keras 的 TensorBoard 回调中嵌入不匹配的张量数量

    我使用的是 CIFAR 10 数据集 因此有 10000 张测试图像 我成功创建了一个 tsv包含元数据的文件 10000 行中每一行的测试集标签 以人类可读的文本形式 而不是索引 但是 在 TensorBoard 中 当我打开嵌入选项卡时
  • Qt fitInView 和调整大小

    我正在尝试做一个QGraphicsView宽度与窗口中心的高度相同 我创建了一个普通的QGraphicsView在 Qt Designer 中并设置最小尺寸 添加了一些居中的计算QGraphicsView进入主窗口的中心 并将宽度设置为与高
  • 使用形状或 9 块图像创建聊天气泡

    我正在尝试在我目前正在开发的 Android 应用程序中为我的聊天气泡创建一个模板 最终结果应该是这样的 我尝试使用 形状 但无法获得正确的多个图层 我还尝试了 9 补丁图像 但创建 9 补丁是我所能做到的 我不知道如何使用它 特别是头像
  • 莺:我的影像在哪里

    我正在使用 Jruby 和 Warbler 将 Jruby on Rails 应用程序部署到 Tomcat 服务器 当我使用 Webrick 部署服务器时 我可以看到所有图像 jruby S server script 但是 当我使用 jr
  • 如何使用 runc 列出 docker 容器

    据我所知runc list允许传递容器存储的根目录 但我不知道要为 docker 传递什么根目录 我试过 var lib docker containers但它说容器不存在 我确实有容器出现在docker ps fyi 或者我假设 dock
  • 大量回调的 NodeJS 性能

    我正在开发 NodeJS 应用程序 有一个特定的 RESTful API GET 当用户触发时 它要求服务器执行大约 10 20 个网络操作 以从不同来源提取信息 所有这些网络操作都是异步回调 一旦它们全部完成 结果将由nodejs应用程序
  • 如何在本地访问Docker容器应用程序?

    我有一个简单的 Node js Express 应用程序 const port 3000 app get req res gt res send Hello World app listen port gt console log Exam
  • 自动增加/减少 UITableViewCell 中的 UILabelView 高度?

    你好 我有一个带有 x 个单元格的 UITableView 最后一个单元格我有两个 UILabel 设置第二个 UILabel 文本时 我试图调整单元格和 UILabel 的大小以显示文本 这是我所拥有的 UILabel LabelBio
  • 使用 AJAX (PHP) 使用另一个 中的值

    我正在尝试使用另一个选择来更改一个选择的值 正如您所看到的 两个选择都是使用 PHP 填充的 现在我想要的是 当选择某个专业时 包含医生的选择会改变 这是代码
  • 文本搜索不适用于 Spring Boot MongoDB

    我正在开发Spring Boot MongoDB spring data mongo Text search例子 通过从链接中获取参考 https spring io blog 2014 07 17 text search your doc
  • 如何从霍夫变换(rho,theta)将坐标转换回图像(x,y)?

    我有一个通过调用 Opencv 中的霍夫变换函数生成的线向量 需要将它们转换回图像坐标 我从Opencv的官方文档中找到了这段示例代码 但我不明白 请有人解释一下吗 for size t i 0 i lt lines gt size i f
  • data.table 中闭包的处理

    我正在使用 data table 包返回函数闭包列表j表达式作为输出approxfun来自 stats 包的函数 基本上 在每个日期 我想要一个闭包 它允许我根据由下式确定的任意 xval 计算任意 yvalapproxfun 然而 app
  • 如何在 Firebase 中将 emailAndPasswordAuth 与 PhoneAuth 合并?

    我正在尝试首先使用用户登录Email and Password 然后在它之后 我想要user s Phone Number也 所以我首先使用他的用户签名EmailAndPasswordAuth在一个活动 自定义登录 上 然后 我在下一个活动
  • 带有图像背景颤动的按钮

    我是Flutter编程新手 我想问是否可以将图像作为按钮背景颤动 这是我的图像资源 final backgroundButton new AssetImage assets background button png 这是我的按钮 Rais
  • 如何使用 FsUnit 正确测试异常

    我试图弄清楚如何使用 FsUnit 正确测试异常 官方文档指出 要测试异常 我必须纠正如下内容 fun gt failwith BOOM gt ignore gt should throw typeof
  • 使用 Oracle 进行分页

    我对 Oracle 的了解并不如我所愿 我有大约 250k 条记录 我想每页显示 100 条 目前 我有一个存储过程 它使用数据适配器 数据集以及存储过程结果上的 dataadapter Fill dataset 方法将所有 25 万条记录
  • Python get 请求返回与查看源代码不同的 HTML

    我正在尝试从我们自己的 URL 存档中提取同人小说 以便使用 NLTK 库对其进行一些语言分析 然而 每次从 URL 中抓取 HTML 的尝试都会返回除同人小说 以及我不需要的评论表单 之外的所有内容 首先我尝试使用内置的 urllib 库