用户
搜索

该用户从未签到

i春秋-脚本小子

Rank: 2

5

主题

11

帖子

78

魔法币
收听
0
粉丝
0
注册时间
2018-2-2
发表于 2019-10-5 14:39:24 0795
声明:
由于某些原因,我这里会用手机代替,其实是一样的!
环境:
  • windows
  • python3.6.5
模块:
  • time
  • selenium
  • re
环境与模块介绍完毕后,就可以来实行我们的操作了。
完整代码:
第一步:
进入淘宝首页:
driver = webdriver.Chrome()driver.get('http://www.taobao.com')
[url=]
[/url]

[url=]
[/url]






第二步:
  • 在输入框中,输入想要查找的商品(keyword),往后用手机代替。
  • 点击搜索按钮
driver.find_element_by_id('q').send_keys(keyword)driver.find_element_by_class_name('btn-search').click()
      它会跳转到我们的登陆界面:
[url=]
[/url]

[url=]
[/url]







我们选择扫码登陆,那么既然要扫码,肯定就需要等待时间。一般提供10S即可,取决于你单身的年龄
time.sleep(10)
登陆后,我们跳转到了 含有信息的页面:
[url=]
[/url]

[url=]
[/url]







第三步:
提取出我们需要的信息,价格、订单量、商品信息、卖家地址:
[url=]
[/url]

[url=]
[/url]







很容易发现我们的商品信息都是包括在了class属性为item J_MouserOnverReq  的div标签当中。
所以可以写出我们的xpath规则:
        info = li.find_element_by_xpath('.//div[@class="row row-2 title"]').text        price = li.find_element_by_xpath('.//a[@class="J_ClickStat"]').get_attribute('trace-price') + '元'        deal = li.find_element_by_xpath('.//div[@class="deal-cnt"]').text        name = li.find_element_by_xpath('.//div[@class="shop"]/a/span[2]').text        position = li.find_element_by_xpath('.//div[@class="row row-3 g-clearfix"]/div[@class="location"]').text
第四步:
第一页采集完毕后,我们需要进行翻页操作。
记住,这里千万不要去模拟点击下一页,会被反爬虫策略命中!
我们可以构造url,
[url=]
[/url]

[url=]
[/url]






很容易发现我们的url的步长为44,并且总页数为100。那么我们可以先提取出我们的总页数:
    token = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]')    token = token.text    token = int(re.compile('(\d+)').search(token).group(1))
然后循环构造url:
[url=]
[/url]

[url=]
[/url]






    num = 1    while num != token - 1:        driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, 44 * num))        driver.implicitly_wait(10)        drop_down()        get_product()        num += 1
[url=]
[/url]

[url=]
[/url]






效果:
少儿不宜
[url=]
[/url]

[url=]
[/url]






好了今天的教程到此结束,希望对你有所帮助!

发新帖
您需要登录后才可以回帖 登录 | 立即注册