发布时间:2023-02-13 13:00
这是一个scrapy + splash 带cookie请求网站的示例,适用于需要登录且是js渲染的网站抓取。
在方法里,SplashRequest是启动splash的方法,其他你如果是想完成登录操作的话,你可以使用SplashFormRequest方法带参登录。
众所周知,splash可以通过lua进行调用,相比与selenium可以在python里直接写动作代码还是稍微复杂了些,不过lua作为一门脚本语言,学习还是挺平滑的,而且在lua里面你还可以调用js,这给了爬虫很大的可能性。
import scrapy
from scrapy_splash import SplashRequest
from scrapy.loader import ItemLoader
from ..import items
log_lua = '''
function main(splash, args)
-- 自定义请求头
splash:set_custom_headers({
["Cookie"] = “cookie内容"
})
assert(splash:go(args.url))
assert(splash:wait(1.5))
return {
html = splash:html(),
}
end
'''
class GlideskySpider(scrapy.Spider):
name = 'g'
allowed_domains = ['www.g.com']
start_urls = ['http://www..com?page=' + str(i) for i in range(1, 1001)]
def start_requests(self): # 起点
for url in self.start_urls:
yield SplashRequest(
url,
callback=self.parse,
endpoint='execute',
args={'lua_source': log_lua},
)
def parse(self, response):
item = ItemLoader(item=Item(), response=response)
item.add_xpath('number', '//div[@class="col-md-1"]//text()')
return item.load_item()
uniapp微信小程序无法使用本地静态资源图片,背景图在真机不显示方法
中国唯一女性 Apache Member 来临腾源会直播间,畅聊开源 45 分钟!
【youcans 的 OpenCV 例程200篇】144. 基于灰度形态学的纹理分割
MindSpore报错ValueError: For 'AvgPool' 输出形状的每一维都要大于零
目标检测损失函数(二)DIOU、CIOU、ALPHA IOU
龙哥手把手教你学LabVIEW视觉-深度学习简明教程【halcon篇】
python——视频爬虫:m3u8文件中.ts视频流的解密下载
【花雕体验】12 搭建ESP32C3之Arduino开发环境
解决visual studio C++ build tools时安装包缺失或损坏的问题(亲测绝对有用!!!)
docker wordpress mysql_使用 Docker 搭建 WordPress 博客