(多线程优化)爬取京东笔记本电脑销量榜data-sku(商品id),并存入云服务器中的mysql库(爬取时间较上一版提升十多倍)

本文介绍了如何优化京东笔记本电脑销量榜爬虫,通过cromeOptions加载优化和ThreadPool的pool.map()多线程方法,将爬取时间从原先的左右缩短到,同时解决了内存溢出和数据库连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文为上一篇爬虫文章的多线程优化版,上一版本爬取时间为3000s左右,优化后仅200多s
前一文连接:爬取京东笔记本电脑销量榜每件商品详情页url,并存入云服务器中的mysql库

较原版所作改动:
1.获取的url改为data-sku,即产品Id。
2.双线程池使用,获取数据和插入数据到数据库同样使用了多线程。
3.原数据库操作为创建数据表插入数据操作,现在为清空原有表中数据再插入新数据操作。
4.需在数据库中先创建数据库和数据表
5.可能遇到的错误及解决方法:
数据库设置最大连接数方法(使用ThreadPool多线程插入数据到数据库报错)
使用ThreadPool()中的pool.map()多线程运行selenium webdriver导致的内存占用巨大,内存溢出乃至电脑卡死解决方法

文末附完整代码备注:数据库ip和密码以***替代

一、优化内容

1、cromeOptions()加载优化

chromeOptions 是一个配置 chrome 启动是属性的类。通过这个类,我们可以为chrome配置如下参数(这个部分可以通过selenium源码看到):

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)
添加示例:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')  # 此为设置编码格式为中文,可用下面配置项替换
# driver = webdriver.Chrome(options = options)  #如需打开驱动位置,换下一行
driver = webdriver.Chrome("D:\Anaconda3\envs\Python\chromedriver.exe", options=options)

常用配置项枚举:

–user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。
–disk-cache-dir=”[PATH]“ 指定缓存Cache路径
–disk-cache-size= 指定Cache大小,单位Byte
–first run 重置到初始状态,第一次运行
–incognito 隐身模式启动
–disable-javascript 禁用Javascript
–omnibox-popup-count=”num” 将地址栏弹出的提示菜单数量改为num个。我都改为15个了。
–user-agent=”xxxxxxxx” 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
–disable-plugins 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
–disable-javascript 禁用JavaScript,如果觉得速度慢在加上这个
–disa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值