scrapy+selenium淘宝商品信息爬虫
淘宝的爬虫检测机制会强制返回login界面内容。想在这里加上cookies绕过这个机制。
于是搞了这个爬虫,这里记录一下。 实现方法是用selenium自动登录get_cookies,然后request中携带上。
用scrapy框架比较方便,可以在setting中携带上cookies。
1 爬虫页tm_get
import scrapy,re,time
from selenium import webdriver
from tm_get.items import TmGetItem
#tm_get是文件名,调用item的Tmgetitem类;这里某些工具(比如pycharm)可能会红字报错,实际上不影响运行
#第一步:定义一个登录指定页面自动输入账号密码,执行登录和搜索商品,并抓取cookies的函数
def get_cookies(item):
browser = webdriver.Chrome(executable_path='C://Program Files/Google/Chrome/Application/chromedriver.exe')
browser.maximize_window()
browser.get('https://login.taobao.com/member/login.jhtml?')
browser.implicitly_wait(1)#隐式等待和sleep都是为了findbyxpath执行时页面已经加载好了,不然偶尔会报错
browser.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys(account)#账号密码匿了
browser.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys(password)
browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
time.sleep(2)
browser.find_element_by_xpath<