编写一个可以抓取淘宝商家好评率排名的python脚本
时间: 2023-05-28 20:03:18 浏览: 143
由于淘宝商家好评率排名是需要登录后才能查看的,因此需要先进行登录操作。这里使用Selenium和Chrome浏览器来模拟登录和抓取数据。
```python
from selenium import webdriver
import time
# 设置Chrome浏览器
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
options.add_argument('--headless') # 无头模式,不弹出浏览器窗口
browser = webdriver.Chrome(options=options)
# 登录淘宝
def login(username, password):
browser.get('https://login.taobao.com/member/login.jhtml')
browser.find_element_by_id('fm-login-id').send_keys(username)
browser.find_element_by_id('fm-login-password').send_keys(password)
browser.find_element_by_class_name('fm-button').click()
time.sleep(5) # 等待页面加载完毕
# 抓取好评率排名
def get_rank():
browser.get('https://s.taobao.com/search?q=%E6%89%8B%E6%9C%BA&sort=sale-desc')
browser.find_element_by_class_name('filter-value').click()
browser.find_elements_by_class_name('option-list')[2].find_elements_by_tag_name('li')[1].click()
time.sleep(5) # 等待页面加载完毕
ranks = []
items = browser.find_elements_by_class_name('item')
for i in range(len(items)):
rank = items[i].find_element_by_class_name('deal-cnt').text
if rank.endswith('万+'):
rank = int(float(rank[:-2]) * 10000)
else:
rank = int(rank)
ranks.append((i+1, rank))
return ranks
# 执行脚本
if __name__ == '__main__':
username = input('请输入淘宝账号:')
password = input('请输入淘宝密码:')
login(username, password)
ranks = get_rank()
print('淘宝手机店好评率排名:')
for rank in ranks:
print('第%d名:%d' % (rank[0], rank[1]))
browser.quit()
```
执行脚本后,会先提示输入淘宝账号和密码进行登录,然后抓取淘宝手机店的好评率排名并输出。
阅读全文