当前位置:   article > 正文

selenium 淘宝爬虫(需要扫码登录一下)_使用selenium爬取淘宝商品需要登录

使用selenium爬取淘宝商品需要登录
  1. from selenium import webdriver
  2. import time
  3. import re
  4. def gethtml(url):
  5. '''定义函数获取html源代码'''
  6. '''由于淘宝是动态网页无法用requests库获取所以使用selenium模拟器'''
  7. driver=webdriver.Chrome()#构造一个Chrom浏览器对象用来控制浏览器
  8. driver.get(url)#根据具体的url访问网页
  9. # 第一种滑块验证,人工操作
  10. i3 = driver.find_element_by_css_selector('#login > div.corner-icon-view.view-type-qrcode > i')
  11. i3.click()
  12. time.sleep(15) # 等待15秒,用来扫码(人工操作)
  13. '''将进度条拉到页面最后'''
  14. try:
  15. js = 'var q=document.documentElement.scrollTop=10000'
  16. driver.execute_script(js) # execute_script()函数运行js下滑脚本
  17. except:
  18. print('出现错误')
  19. html = driver.page_source #获取网页源代码
  20. driver.close()#关闭浏览器
  21. print('关闭浏览器')
  22. #print(html)
  23. return html
  24. def xieru(html):
  25. with open("C:\\Users\86666\Desktop\python文件处理\钓鱼.html",'at',encoding='utf-8')as wenjian:
  26. wenjian.write(html)
  27. print('写入成功')
  28. with open('C:\\Users\86666\Desktop\python文件处理\钓鱼.html','rt',encoding='utf-8')as j:
  29. html2=j.read()
  30. return html2
  31. def tiqu(list,html2):
  32. '''从获得到的网页中提取需要的信息'''
  33. try:
  34. '''提取商品名称'''
  35. zhengze=re.compile(r'"raw_title":".{0,40}",')#用re.compile()函数将正则表达式的字符串转化(编译)为正则表达式对象用于多次操作
  36. '''获得付款人数'''
  37. zhengze1=re.compile(r'"view_sales":".{0,30}",')
  38. l1=zhengze.findall(html2)
  39. l2=zhengze1.findall(html2)
  40. except:
  41. print('出现错误')
  42. if len(l1)==len(l2):
  43. for i in range(len(l1)):
  44. u=eval(l1[i].split(':')[1])
  45. u2=eval(l2[i].split(':')[1])
  46. list.append([u,u2])
  47. print('打印列表')
  48. return list
  49. def print1(list2):
  50. '''按规则打印'''
  51. print('{0:<35}\t\t\t\t\t{1:<12}'.format('付款人数','产品名称'),chr(12288))
  52. for i in range(len(list2)):
  53. print('{0:<35}\t\t\t\t\t{1:<12}'.format(str(list2[i][0][0]),str(list2[i][1][0])),chr(12288))
  54. def main():
  55. list=[]
  56. url=('https://s.taobao.com/search?q=%E9%B1%BC%E7%AB%BF&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306')
  57. html=gethtml(url)
  58. xieru(html)
  59. html2=xieru(html)
  60. list2=tiqu(list,html2)
  61. print(list2)
  62. print1(list2)
  63. main()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/970110
推荐阅读
相关标签
  

闽ICP备14008679号