分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

phantomjs集成到scrapy中,并禁用图片,切换UA

发布时间:2023-09-06 01:40责任编辑:郭大石关键词:js

phantomjs是一个没有界面的浏览器,支持各种web标准,提供DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG,对于爬取一些经过js渲染的页面非常有用。但是phantomjs默认的user-agent一般都被那些防采集的网站屏蔽了,鬼都知道用这个浏览器,都是来爬取网页的,不是正常的用户。

??phantomjs相当于一个真实的浏览器,一个浏览器该加载的该渲染的它都加载都渲染,只是没有界面而已。所以爬取网页的速度很慢。如果可以不加载图片,网页加载速度就会快不少.

下面是PhantomJS禁用加载图片,并随机切换UA的scrapy middleware的完整代码

  

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

from fake_useragent import UserAgent

from scrapy.http import HtmlResponse

  

  

class SeleniumSpiderMiddleware(object):

def process_request(self, request, spider):

# 随机请求头

???????ua = UserAgent()

???????ua_use = ua.random

# 设置请求头

???????dcap = dict(DesiredCapabilities.PHANTOMJS)

# --load-images=false 图片不加载

# --disk - cache = true 启用缓存

# --max-disk-cache-size=1024 设置最大缓存数量

???????SERVICE_ARGS = [‘ --disk-cache=true‘,‘--max-disk-cache-size=1024‘, ‘--load-images=false‘]

???????dcap["phantomjs.page.settings.userAgent"] = ua_use

# 请求头生效, 图片不加载生效

???????driver = webdriver.PhantomJS(desired_capabilities=dcap, service_args=SERVICE_ARGS)

# 请求的url是这个

???????url = request.url

???????driver.get(url)

# 设置等待所有的td标签加载完成

???????locator = (By.CSS_SELECTOR, ‘tbody > tr > td‘)

WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located(locator))

# 截图看是否有图片加载

???????driver.save_screenshot(‘aqi.png‘)

???????body = driver.page_source

???????driver.close()

# body必须为bytes类型

???????response = HtmlResponse(url=url, request=request, encoding=‘utf8‘, body=body.encode())

# 直接return response 直接将response返回到engine不会重新下载

return response

phantomjs集成到scrapy中,并禁用图片,切换UA

原文地址:https://www.cnblogs.com/liuqianli/p/8390444.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved