浏览器抓取网页(安装selenium环境的几种常见问题及解决办法!)

优采云 发布时间: 2021-09-22 11:39

  浏览器抓取网页(安装selenium环境的几种常见问题及解决办法!)

  也可以来我的博客看看爬网谈话(一)使用selenium捕获

  

  孟昕想要学习硒,安装是一个坑。还可以下载相关附件,可以参考Python安装Selenium环境。

  1、使用firefox实例

  from selenium import webdriver

import time

firefox = webdriver.Firefox() #初始化Firefox浏览器

url = 'https://www.zhihu.com'

firefox.get(url) #调用get方法抓取

time.sleep(10) #10s用于观察

with open('zhihu.html','w',encoding='utf-8') as f:

f.write(firefox.page_source) #保存网页到本地

firefox.quit()

  

  上面的图片是一个名为Firefox的网页。使用page_source可以获得Web源代码,因为请求和请求是相同的,不必添加标题。

  2、对s s配置配置的p配置

  简单地说,使用selenium修改浏览器相关的参数,使浏览器没有加载js,没有图片,会增加大量速度。代码如下:

  from selenium import webdriver

import time

firefox_profile = webdriver.FirefoxProfile()

firefox_profile.set_preference("permissions.default.stylesheet",2) #禁用样式表文件

firefox_profile.set_preference("permissions.default.image",2) #不加载图片

firefox_profile.set_preference("javascript.enabled",False) #禁止JS

firefox_profile.update_preferences() #更新设置

firefox = webdriver.Firefox(firefox_profile)

url = 'https://www.zhihu.com'

print("开始加载")

t_start = time.time()

firefox.get(url)

t_end = time.time()

print("加载时间是:",t_end-t_start)

time.sleep(10)

firefox.quit()

  

  加载页面,如下所示

  

  firefox_profile.set_preference("permissions.default.stylesheet",1)

firefox_profile.set_preference("permissions.default.image",1)

firefox_profile.set_preference("javascript.enabled",True)

  更改2到1,错误的更改为true,请参阅

  

  返回普通网页

  

  4s和10s差异,它将体现在攀登多个网页。

  请注意,页面加载与实际的网络环境有关。

  3、图图

  禁用js,页面加载是否更快,可以在每种模式下运行相同的次数,然后取得平均值。

  使用matplotlib绘图

  from selenium import webdriver

import time

import matplotlib.pyplot as plt

def performance(n,css_val,image_val,js_val):

loading_time = []

for i in range(0,n):

firefox_profile = webdriver.FirefoxProfile()

firefox_profile.set_preference("permissions.default.stylesheet",css_val)

firefox_profile.set_preference("permissions.default.image",image_val)

firefox_profile.set_preference("javascript.enabled",js_val)

firefox_profile.update_preferences()

firefox = webdriver.Firefox(firefox_profile)

url = 'https://zhangslob.github.io/'

print("开始加载")

t_start = time.time()

firefox.get(url)

t_end = time.time()

print("加载时间是:",t_end-t_start)

loading_time.append(t_end-t_start)

print('=========================')

#time.sleep(10)

firefox.quit()

return [x for x in range(1,n+1)],loading_time

if __name__ == '__main__':

x1_lst,y1_lst = performance(10,1,1,True)

x2_lst,y2_lst = performance(10,2,2,False)

ava_y1 = sum(y1_lst)/len(x1_lst)

ava_y2 = sum(y2_lst)/len(x2_lst)

plt.title("Compare loading time")

plt.xlabel("Test number")

plt.ylabel("Loading time")

plt.plot(x1_lst,y1_lst,'go:',label=str(ava_y1))

plt.plot(x2_lst,y2_lst,'rs:',label=str(ava_y2))

plt.legend()

plt.show()

  我将URL更改为我的博客:库克斯的博客,这更加符合实用。

  绿线是正常的网页,红色是修改的

  

  为了确保准确,将其更改为其他URL,但为什么?

  

  问题:

  为什么可以禁用js,不要加载图片,时间和原创差异?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线