一、需求分析
本项目的需求是实现输入淘宝卖家的旺旺号,获取该卖家在淘宝平台上的信用分。为了实现这个需求,我们需要进行以下几个步骤:
1. 使用Selenium模拟登陆淘宝网站。
2. 通过输入卖家旺旺号并点击查询按钮,等待几秒后获取查询结果。
3. 从查询结果中提取卖家的信用分。
二、思路
由于我们无法直接模拟登录淘宝网站,因此需要寻找其他途径来获取卖家的信用分。经过调研,我们发现了一个名为“淘一兔”的网站,可以通过输入卖家旺旺号获取到相同的信用分。因此,我们可以利用Selenium和BeautifulSoup这两个工具来完成这个任务。
三、实现源代码(抓取不能太快,否则抓不到)
```python
import time
from selenium import webdriver
from bs4 import BeautifulSoup
def get_taobao_credit_score(旺旺号):
driver = webdriver.Chrome()
driver.get("http://www.taoyizhu.com/")
# 输入旺旺号
driver.find_element_by_id("search").send_keys(旺旺号)
driver.find_element_by_id("search").submit()
# 等待查询结果出现
time.sleep(5)
# 获取查询结果页面源代码
html = driver.page_source
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(html, "html.parser")
# 从解析后的HTML中提取信用分
credit_score = soup.find("div", class_="credit-score").text
driver.quit()
return credit_score
# 测试
旺旺号 = "1234567890"
信用分 = get_taobao_credit_score(旺旺号)
print(f"{旺旺号}的信用分为:{信用分}")
```
注意:为了避免被封IP,请在执行此代码时适当增加延时。
```python# encoding: utf-8
from selenium import webdriver
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import pandas as pd
import time
import re
time1 = time.time()
driver = webdriver.PhantomJS(executable_path=r'D:\Program Files\Python27\Scripts\phantomjs.exe')
driver.set_window_size(800, 600)
########################读取数据############################
data1 = pd.read_excel(r'C:/taobao/taobao1.xlsx')
print(data1)
#######################查询店铺信誉分#############################
seller_credit = []
for i in range(0, len(data1)):
key = str(data1.iloc[i, 0])
key1 = key.decode('utf-8')
driver.get('http://www.taoyizhu.com/')
time.sleep(5)
driver.find_element_by_id('txt_name').clear()
driver.find_element_by_id('txt_name').send_keys(key1)
driver.find_element_by_id('search_btn').click()
time.sleep(3)
html2 = driver.page_source
seller_credit1 = re.findall('(.*?)', html2, re.S)
for each in seller_credit1:
print(key, each)
seller_credit.append(each)
# #######################################增加店铺信誉分这一列#############################
data1['店铺信誉分'] = seller_credit
print(data1)
# 写出excel
writer = pd.ExcelWriter(r'C:\\taobao\\taobao1_all.xlsx', engine='xlsxwriter', options={'strings_to_urls': False})
data1.to_excel(writer, index=False)
writer.close()
time2 = time.time()
print('ok,爬虫结束!')
print('总共耗时:' + str(time2 - time1) + 's')
```