当前位置: 首页 > 知识库问答 >
问题:

Python请求。获取(url)返回javascript代码而不是页面html

伊飞光
2023-03-14

我有一个非常简单的问题。我试图从linkedIn页面的html中获取工作描述,但是我没有得到页面的html,而是得到了几行看起来像javascript代码的代码。我对这一点很陌生,所以任何帮助都将不胜感激!谢谢

这是我的密码:

import requests
url = "https://www.linkedin.com/jobs/view/inside-sales-manager-at-stericycle-1089095836/"
page_html = requests.get(url).text
print(page_html)

当我运行这个时,我没有得到我期望包含工作描述的html。。。我只得到几行javascript代码。

共有1个答案

鄢英哲
2023-03-14

有些网站根据访问网站的浏览器类型提供不同的内容。LinkedIn就是这种行为的完美例子。如果浏览器具有高级功能,网站可能会呈现“更丰富”的内容——更具动态性和风格。使用机器人也无助于浏览这些网站。

要解决这个问题,您需要遵循以下步骤:

  1. 从这里下载chrome驱动程序。选择一个符合您的操作系统。
  2. 提取驱动程序并将其放在某个目录中。例如,\usr
  3. 通过运行pip安装selenium安装Selenium,这是一个python模块。请注意,selenium依赖于另一个名为msgpack的包。因此,您应该首先使用这个命令安装它。
  4. 现在,我们准备运行以下代码
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


def create_browser(webdriver_path):
    #create a selenium object that mimics the browser
    browser_options = Options()
    #headless tag created an invisible browser
    browser_options.add_argument("--headless")
    browser_options.add_argument('--no-sandbox')
    browser = webdriver.Chrome(webdriver_path, chrome_options=browser_options)
    print("Done Creating Browser")
    return browser


url = "https://www.linkedin.com/jobs/view/inside-sales-manager-at-stericycle-1089095836/"
browser = create_browser('/usr/chromedriver') #DON'T FORGET TO CHANGE THIS AS YOUR DIRECTORY
browser.get(url)
page_html = browser.page_source
print(page_html[-10:]) #prints dy></html>

现在,你有了整个页面。我希望这能回答你的问题!!

 类似资料:
  • 我在google sheets中有一个脚本,可以将当前的工作表作为附件发送到电子邮件中。 这个脚本在我看来100%都能正常工作,但是任何其他运行相同脚本的人都会出错。寻找想法或解决方案,这样每个人都可以使用脚本,而不仅仅是我。他们都已授权脚本运行,但仍然存在相同的错误。(脚本下面列出的错误) 其他人收到的错误,每次都对我有效: https://docs.google.com/a/stratusvi

  • 编辑问题以包括所需的行为、特定问题或错误,以及重现问题所需的最短代码。这将有助于其他人回答这个问题。 代码不返回值,而是返回“?”。编译时我没有遇到任何错误。请协助。 代码需要返回需要支付的剩余金额。输出代码1代码2代码3代码4

  • 问题内容: JavaScript代码将从www.example.com通过google chrome中的网址栏启动,因此我无法使用jquery。我的目标是当我在www.example.com中启动代码时,将www.example.com/page.html的完整html源代码传递给javascript中的变量。这可能吗?如果可以,怎么办?我知道要获取当前页面源,但我不确定如何做到这一点。我认为可以

  • 问题内容: 我正在使用Selenium2对我的网站进行一些自动化测试,并且希望能够获得一些Javascript代码的返回值。如果我的网页中有Javascript函数,并且想调用该函数并将返回值获取到我的Python代码中,该怎么做? 问题答案: 要返回值,只需在传递给方法的字符串中使用JavaScript关键字,例如

  • 我在我的一个android应用程序中实现了Admob。第一次它有一个横幅添加我的应用程序的下面。但是在8项之后在RecylearView中添加横幅广告后,就会出现问题。90%的情况下它返回响应代码3。 最长显示时间: I/Ads:没有来自ad服务器的填充。带广告:无法加载广告:3 这里的响应代码:3表示ad请求成功,但由于缺少ad库存,没有返回任何ad。但其他应用程序经常在同一台设备上显示广告。