Html 为什么网站的源代码与在浏览器中检查时的代码不同?(用于拉网)

Html 为什么网站的源代码与在浏览器中检查时的代码不同?(用于拉网),html,python-3.x,selenium-webdriver,web-scraping,beautifulsoup,Html,Python 3.x,Selenium Webdriver,Web Scraping,Beautifulsoup,我正在做我的第一个编程项目,所以请原谅任何不正确的行话 我的目标是: 我正试图从我当地图书馆的网站上搜集资料。最终目标是能够自动更新网站上的书籍 进展: 我已经成功地使用Python、Selenium和Webdriver登录到图书馆的网站,并进入“签出”页面查看我的借出项目。然后,我使用BeautifulSoup提取网站“签出”页面的HTML代码 问题: 我查看“签出”网站(在Chrome浏览器中单击鼠标右键并选择“检查”)时的HTML源代码与查看HTML源代码(在Chrome浏览器中单击鼠标右

我正在做我的第一个编程项目,所以请原谅任何不正确的行话

我的目标是: 我正试图从我当地图书馆的网站上搜集资料。最终目标是能够自动更新网站上的书籍

进展: 我已经成功地使用Python、Selenium和Webdriver登录到图书馆的网站,并进入“签出”页面查看我的借出项目。然后,我使用BeautifulSoup提取网站“签出”页面的HTML代码

问题: 我查看“签出”网站(在Chrome浏览器中单击鼠标右键并选择“检查”)时的HTML源代码与查看HTML源代码(在Chrome浏览器中单击鼠标右键并选择“查看源代码”)时的代码不同

查看源代码时,HTML代码与我的Python代码提取的内容一致,但缺少我想要获取的所有信息。但是,检查站点时的HTML代码确实包含我想要获取的信息

问题:

  • 为什么当我“检查”网站和从Chrome浏览器“查看源代码”时,HTML代码会有所不同?(这可能是‘缩小’?)
  • 我如何提取HTML代码和我想要获取的信息 我在下面包含了我的代码

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from bs4 import BeautifulSoup
    import requests
    
    driver = webdriver.Chrome()
    driver.get('https://www.torontopubliclibrary.ca/signin')
    
    # Login details
    username = 'abcdefghi'
    password = 'abcd'
    
    # Type Username
    submitUsername = driver.find_element_by_id('userId')
    submitUsername.send_keys(username)
    
    # Type Password
    submitPassword = driver.find_element_by_id('password')
    submitPassword.send_keys(password)
    
    # Press Enter
    enter = driver.find_element_by_xpath('//*[@id="form_signin"]/div[2]/input[3]')
    enter.click()
    
    # Open Checkouts page
    driver.get('https://account.torontopubliclibrary.ca/checkouts')
    
    driver = requests.get('https://account.torontopubliclibrary.ca/checkouts').text
    soup = BeautifulSoup(driver, 'html.parser')
    
    关于你的第一个问题:“为什么当我‘检查’网站和从Chrome浏览器‘查看源代码’时HTML代码不同?(这可能是‘缩小’?)

    “查看源代码”显示请求页面时从服务器收到的HTML文本响应

    收到这个初始响应后,在现代页面中会执行大量javascript,这会更改从服务器接收到的初始html。 当您“检查”页面时,通过javascript所做的所有更改都会反映在您所看到的内容中,并与您作为用户在浏览器中看到的内容同步,而“查看源代码”总是从服务器返回初始响应,此后不会发生任何更改。

    关于您的第一个问题:“为什么我在Chrome浏览器中“检查”网站和“查看源代码”时HTML代码会有所不同?(这可能是‘缩小’?)

    “查看源代码”显示请求页面时从服务器收到的HTML文本响应

    收到这个初始响应后,在现代页面中会执行大量javascript,这会更改从服务器接收到的初始html。
    当您“检查”页面时,通过javascript所做的所有更改都会反映在您所看到的内容中,并与您作为用户在浏览器中看到的内容同步,而“查看”源代码“始终从服务器返回初始响应,之后不会发生任何更改。

    这是否回答了您的问题?我想到的两件事是:1)不要等待所有东西都加载;2)使用非html5解析器。这能回答你的问题吗?我想到的两件事是:1)不要等待加载所有内容;2)使用非html5解析器