淘宝爬虫
爬取淘宝上的数据:销量啊、价格啊、以及好评等等。
这里以selenuim为例,来介绍一下淘宝商品的爬取过程。
在此之前,需要确保selenuim和浏览器驱动chromedriver已经安装好。
淘宝页面分析
内容的输入需要自定,所需需要先找出输入框,便于输入查找操作。同理查找出搜索按钮所在标签。后面需要爬取多页的数据,这里通过解析比较不同页面的url链接,来构建新的网链接来完成翻页的功能(构建新的url可能会引发网站的反爬措施)。页面终止需要知道总页数。实现功能如下:
```python
def search():
driver.find_element_by_id('q').send_keys('python')
driver.find_element_by_class_name('btn-search').click()
# 为了避免报错,可以在这异常设置
time.sleep(10)
while 1:
start = time.process_time()
try:
token=driver.find_element_by_xpath('//div[@id="mainsrp-pager"]/div/div/div/div[1]').text
print('已定位到元素,元素为'+token)
end=time.process_time()
break
except:
print('还未定义到元素')
print('定位耗时时间'+str(end-start))
token=int(re.compile('\d+').search(token).group(0))
return token
点击搜索之后,页面不会直接弹出商品列表,弹出的是一个登陆页面,这时需要自己进行扫码登陆。(这种方法比较笨,爬取 到一半左右可能会出现滑块检测,可以选择火狐的浏览器进行解决。)
模拟鼠标的滑动,处理部分图片不显示问题,采用JS的鼠标滑动的功能来实现。
```python
def drop_down():
for x in range(1,11,2):
time.sleep(0.5)
j=x/10
js='document.documentElement.scrollTop = document.documentElement.scrollHeight * %f'