淘宝爬虫

爬取淘宝上的数据:销量啊、价格啊、以及好评等等。
这里以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' % j
        driver.execute_script(js)

模拟鼠标的滑动,处理部分图片不显示问题,采用JS的鼠标滑动的功能来实现,实现代码如下: