关于#python#的问题,如何解决?

要爬取一下这个网站里的graph data数据,网址在代码里,但是不知道为什么爬到的网页源代码跟浏览器element里的不一样,以下为源代码,麻烦帮忙看一下

from selenium.webdriver import Edge
from selenium.webdriver.support.select import Select
from selenium.webdriver.edge.options import Options #不显示页面
from lxml import etree
from lxml import html

#不显示浏览器使用的过程
opt = Options()
opt.add_argument('--headless')
opt.add_argument('--disable-gpu')
#-------------------------------------
web = Edge(options=opt)#把参数设置到浏览器

url="https://csacademy.com/app/graph_editor/"
web.get(url)
source = web.page_source#得到页面element的html代码
print(source)
selector=etree.HTML(source)

看看一个是不是动态ajax加载的,一个是不是没有指定referer和user-agent,抓包看看

参考GPT和自己的思路:

根据你提供的代码,首先可以看到你使用了Selenium和Edge浏览器来获取网页源代码,并设置了不显示浏览器的过程。

如果你发现爬到的网页源代码与浏览器元素不一致,可能有以下几个原因:

  1. 由于网站可能会根据请求的来源和头信息返回不同的网页源代码,可能需要在你的代码中设置请求头信息来确保获取与浏览器元素一致的网页源代码。
  2. 如果你的代码是通过动态加载来获取网页的,需要确保所有的资源(js、css、图片等)都被加载完全才能获取到完整的网页源代码。
  3. 有可能是因为网站在使用页面渲染引擎时会对不同的浏览器(如Chrome、Edge、Firefox等)有所区别,所以不同的浏览器或者版本可能会返回不同的网页源代码。

你可以尝试在代码中添加更多的请求头信息(模拟浏览器)或者等待页面资源加载完全后再获取网页源代码,或者考虑使用其他浏览器或版本来获取网页源代码。同时你也可以尝试使用其他的工具或库,如requests、scrapy等来获取网页源代码。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^