当前位置:   article > 正文

如何利用selenium爬取电商网站的数据信息并存储到mysql数据库中_selenium爬取商品信息

selenium爬取商品信息

在课堂上,老师给我们布置了一项作业,如何利用selenium爬取电商网站的商品数据信息,并将其存储到mysql数据库中,目标网站是网商园,毕竟大的电商网站反爬技术比较高,爬取难度也比较大,下面是详细代码

  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. from selenium.webdriver.common.by import By
  4. import pymysql
  5. from bs4 import BeautifulSoup
  6. from time import sleep
  7. #模拟登录
  8. driver = webdriver.Chrome()
  9. driver.get("https://www.wsy.com/member/login.htm?f=top&redirectURL=http%3A%2F%2Fwww.wsy.com%2F")
  10. username_field = driver.find_element(By.ID, "TPL_username")
  11. password_field = driver.find_element(By.ID, "TPL_password")
  12. login_button = driver.find_element(By.XPATH, "//*[@id='login']")
  13. username_field.send_keys("") #这里填你的网商园账号名
  14. password_field.send_keys("") #这里填写密码
  15. login_button.click()
  16. #让程序睡眠20秒,防止被检查出来是爬虫的风险,之后每一个sleep都是同样道理
  17. sleep(20)
  18. #连接MySQL数据库
  19. conn = pymysql.connect(host='localhost', user='root', password='123456', database='aaa',charset='utf8',autocommit=True)
  20. cursor = conn.cursor()
  21. #这里是爬取操作,爬取了五个类目,每个类目的前十页
  22. for page in range(1,11):
  23. #driver.get(f"https://www.wsy.com/category.htm?&cid=50000436 & page= {page}")#T恤
  24. #driver.get(f"https://www.wsy.com/category.htm?&cid=50000557 & page= {page}")#毛衣
  25. driver.get(f"https://www.wsy.com/category.htm?&cid=50010158 & page= {page}")#夹克
  26. #driver.get(f"https://www.wsy.com/category.htm?&cid=50010159 & page= {page}")#西装
  27. #driver.get(f"https://www.wsy.com/category.htm?&cid=50010160 & page= {page}")#卫衣
  28. sleep(20)
  29. tshirts = driver.find_elements(By.XPATH, "//*[@id='goodslist']")
  30. tshirt_data = []
  31. #遍历爬取网页中的每一个商品,将数据取出
  32. for i in range(1,49):
  33. for tshirt in tshirts:
  34. title = tshirt.find_element(By.XPATH, f"//*[@id='goodslist']/div[{i}]/div/div[2]/a").text
  35. price = tshirt.find_element(By.XPATH, f"//*[@id='goodslist']/div[{i}]/div/div[3]/div[1]/strong").text
  36. sales_count = tshirt.find_element(By.XPATH, f"//*[@id='goodslist']/div[{i}]/div/div[3]/div[2]/span").text
  37. tshirt_data.append({
  38. "ID": i,
  39. "商品名": title,
  40. "商品品类": "夹克",
  41. "商品价格": price,
  42. "商品销售数量": sales_count
  43. })
  44. print(f"已爬取 {len(tshirt_data)} 条夹克销量数据")
  45. #将爬取到的数据存储到MySQL数据库中
  46. insert_sql = f"INSERT INTO t桖 (ID, 商品名, 商品品类, 商品价格, 商品销售数量) VALUES ('{tshirt_data[i-1].get('ID')}','{tshirt_data[i-1].get('商品名')}','{tshirt_data[i-1].get('商品品类')}','{tshirt_data[i-1].get('商品价格')}','{tshirt_data[i-1].get('商品销售数量')}')"
  47. cursor.execute(insert_sql)
  48. conn.commit()
  49. cursor.close()
  50. conn.close()

到最后就可以实现将网站每个商品的数据采集存储到数据库中了

这里是新人程序菜鸟云起风程,麻烦看到这篇文章的大佬们多多点赞,支持一下!

新人菜鸟在这里不胜感激!给诸位磕一个了!

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

闽ICP备14008679号