帮朋友写的一个亚马逊关键词搜索结果,用request跟beautiful爬下来是 一堆乱码,不知道怎么解析,最后用selenium实现自动化抓取,效率较慢。
环境:python 3
要求:
抓取每个关键词的结果数是多少
思路:
自动化打开窗口;
拼接关键词链接;
用selenium抓取,id:s-result-count,文本内容
存储到本地
代码实现:
#coding = utf - 8
from selenium import webdriver
import os
import time
#url跳转链接
baseUrl = 'http://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords='
offSet = ['ceramic knife set','dogs','pet','towel','bathroom','paper','quilt','glass','Skate']
#启动浏览器
chromedriver = "F:\\Anaconda\Lib\\site-packages\\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)
#browser.get("https://www.baidu.com/")
#循环获取link
i = 0
for key_word in range(len(offSet)):
print(i)
#time.sleep(10)
#url
try:
browser.get(baseUrl+offSet[i])
#selenium find id元素
content = browser.find_element_by_id('s-result-count').text
#time.sleep(15)
resultFile = open("F:\\amazon_keyword.txt","a")
resultFile.write(content +"\n")
resultFile.close()
except:
print('Error')
#browser.close()
i += 1
总结:刚开始由于网络原因,一直延时抓取,提示错误,用了try想找出异常,接了网线后才发现是网络原因-