1.数据获取
由于手机的价格以及评论数是需要经过javascript渲染的动态信息,单纯用requests模块是爬取不到的。解决方案是首先使用selenium的webbrowser模块使用本地Chrome浏览器爬取每一款手机在京东的内部id,价格,以及评论数。然后再根据爬取到的id找到每款手机的销售页面,爬取每款手机的关键参数。
由于爬虫需要调用浏览器,因此在线上环境中无法运行。爬虫的代码放在了'python'文件夹的parsing_code.ipynb文件中。
下面是第一步爬取手机id,价格,评论数的代码。其他chrome_driver需要自己根据浏览器版本进行下载,网上教程https://www.jb51.net/article/162903.htm
chrome_driver = 'C:/Users/darren/Desktop/python_exercise/bags/chromedriver.exe'
browser = webdriver.Chrome(executable_path= chrome_driver)
phone_list=[]
for i in range(23):
browser.get("https://list.jd.com/list.html?cat=9987,653,655&page={}".format(i+1))
wait = WebDriverWait(browser, 4)
page=html.fromstring(browser.page_source)
for each in page.xpath("//div[@class='gl-i-wrap j-sku-item']"):