前言
如果说爬虫是模拟浏览器向服务器发送请求,获取数据,那么有了selenium之后,我们可以操控浏览器自动帮我们抓取数据。关于selenium在python中的使用,可以参考Selenium Documentation和Selenium with Python中文翻译文档。
步骤
这次以京东为例,获取京东的商品列表数据。步骤如下
- 打开首页
- 搜索关键字,进入第一页
- 网页下拉
- 获取网页源码,解析网页
- 存储数据
- 翻页,重复3、4、5步
最终我们能拿到如下数据,虽然selenium有一个非常明显的缺点——速度太慢,但却能轻松帮我们搞定动态网页,python + selenium合理使用我们能做很多事情。
详细代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup as bs
import time
import json
class JD:
def __init__(self):
self.url = 'https://www.jd.com/'
self.chrome_options = Options()
self.chrome_options.add_argument('--headless')
self.driver = webdriver.Chrome(self.chrome_options)
# self.driver.maximize_window()
def search(self, keyword):
element = self.driver.find_element_by_id('key'