Html 为什么网站的源代码与在浏览器中检查时的代码不同?(用于拉网)
我正在做我的第一个编程项目,所以请原谅任何不正确的行话 我的目标是: 我正试图从我当地图书馆的网站上搜集资料。最终目标是能够自动更新网站上的书籍 进展: 我已经成功地使用Python、Selenium和Webdriver登录到图书馆的网站,并进入“签出”页面查看我的借出项目。然后,我使用BeautifulSoup提取网站“签出”页面的HTML代码 问题: 我查看“签出”网站(在Chrome浏览器中单击鼠标右键并选择“检查”)时的HTML源代码与查看HTML源代码(在Chrome浏览器中单击鼠标右键并选择“查看源代码”)时的代码不同 查看源代码时,HTML代码与我的Python代码提取的内容一致,但缺少我想要获取的所有信息。但是,检查站点时的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浏览器中单击鼠标右
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解析器