qq_41734591
2018-02-23 03:04
采纳率: 66.7%
浏览 1.4k
已采纳

python爬虫的理解问题

本人编程小白,近日看了一点爬虫教学视频有些不理解,希望向大神求教:
同样的url,chrome浏览器F12后的Elements选项卡下的内容,和python使用requests库,print((requests.get("同样的URL")).text)显示的内容,以及使用selenium库执行如下代码显示的内容:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("同样的URL")
print(browser.page_source) 

请问:三者分别显示什么内容?如果显示内容不一样,这三者之间是什么关系?是否与chrome浏览器F12后的Network选项卡下的内容有关?

我个人的理解是:
res.text内容是请求时网页的html代码
Elements选项卡下的代码内容其实是会变化的,就是当前浏览器所显示的内容,所以与selenium执行以上代码显示的内容相同
Network选项卡下是各种请求,因为这些请求才使浏览器所显示的内容呈现或变化

我的理解对吗?如有错误,请各位指正或重新回答所提的问题,谢谢!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • greatsimple 2018-02-26 10:39
    已采纳
    1. 你的理解是对的
    2. 我把我的理解说一下, 比如说一个网页显示了商品的价格, 而且这个价格信息是网页的js代码请求了价格信息对应的url之后显示出来的
    • 我用requests库去访问一个url的时候, 得到的是最原始html文件. 就是这行js代码而已, 不含有价格信息
    • 我用浏览器访问一个url的时候, 浏览器就会执行这行js代码, 得到价格信息, 浏览器渲染之后的html就是Elements选项卡下的内容. 所以含有价格信息
    • selenium调用的也是浏览器, 所以也含有价格信息
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • steve_wenli 2018-02-23 03:23

    自己测试一下就清楚了,1和3应是一样的,2只是最初的内容,javascript没有执行。当然如果只是简单的html页面,没有javascript加载内容的话,应该都是一样的。

    评论
    解决 无用
    打赏 举报
  • 江湖一点雨 2018-02-23 04:05

    2应该是浏览器带着自己独有的头部信息去请求URL时候有的,可能会跟1-3不太一样。但是指向的应该是同一个地方。

    评论
    解决 无用
    打赏 举报
  • zwl1619 2018-02-23 04:37

    建议用puppeteer代替selenium

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题