使用python爬虫爬取淘宝商品信息
使用的模块主要有 selenium ,time , re,
from selenium import webdriver
import time
import csv
import re
def search_product(key):
driver.find_element_by_id('q').send_keys(key) # key为传的形参
driver.find_element_by_class_name("btn-search").click() # 点击搜索按钮
driver.maximize_window() # 窗口最大化
time.sleep(15)
page = driver.find_element_by_xpath("//div[@class='m-page g-clearfix']").text # 提取最大页码数
page = re.findall('(\d+)', page)[0] # 提取当前页
return page # 返回page
def get_product():
divs = driver.find_elements_by_xpath("//div[@class='items']/div[@class='item J_MouserOnverReq ']") # 把每个商品按照div分类
for div in divs:
info = div.find_element_by_xpath(".//div[@class='row row-2 title']/a").text # 获取商品信息
price = div.find_element_by_xpath(".//strong").text + "元" # 获取商品价格
buyer_nums = div.find_element_by_xpath(".//div[@class='deal-cnt']").text # 获取商品购买人数
dsrs = div.find_element_by_xpath(".//div[@class='shop']/a").text # 获取店铺名称
add = div.find_element_by_xpath(".//div[@class='location']").text # 获取地址
print(info, price, buyer_nums, dsrs, add, sep='|')
with open('TT.csv', 'a', encoding="utf-8", newline="") as filecsv: # 保存到csv文件中 需要使用csv模块
csvwriter = csv.writer(filecsv, delimiter=",")
csvwriter.writerow([info, price, buyer_nums, dsrs, add])
def main():
print("正在爬取第一页的数据")
page = search_product(keyword) # 调用函数
get_product() # 调用函数
# 实现循环下一页直到最后一页
page_num = 1
while page_num != page:
print("*"*100)
print("正在爬取第{}页的数据".format(page_num+1))
print("*" * 100)
driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, page_num*44))
driver.implicitly_wait(5) # 浏览器等待设置
get_product() # 再次调用获取数据的方法
page_num += 1
if __name__ == '__main__':
keyword = input("输入搜索商品关键字:")
driver = webdriver.Chrome()
driver.get("https://www.taobao.com/")
main()
在input中输入想要爬取的商品信息 之后需要手动扫码登陆淘宝(自动登陆有些麻烦暂时略过


另外爬取速度相对较慢,可以采用多线程进行爬取