最近查看了之前跟着崔庆才老师的《Python3网络爬虫开发实战》写的代码,第13章使用Scrapy对接Selenium中间件去爬取淘宝商品详情的爬虫不能用了,之前文章如下https://cloud.tencent.com/developer/article/1151835。
现在的主要问题是:
- 淘宝加强了反爬虫机制(登陆验证),即搜索商品需要登录。
- 新版selenium对phantomjs不提供支持,有些方法函数的失效。
所以在原来代码的基础上进行了改进,加入了淘宝登陆(从微博的第三方登录比较简单),并且将之前用的浏览器phantomjs变成了chrome headless。主要修改的代码如下:
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
from scrapy.http import HtmlResponse
from logging import