本篇涉及到爬虫用的是Python+selenium,关于python+selenium实现对数据的抓取,主要知识点已在上一篇介绍,有问题的可以看上一篇,本节将结合上一节知识点,主要讲解爬虫爬取数据后与数据库(redis/mysql)结合的具体操作。
一.redis篇
1 准备
1.1.在redis网址下载(下载地址[https://redis.io/download]
1.2.解压下载的redis文件
1.3.双击redis-server.exe,即启动redis数据库如下图
2.python操作redis的方法
2.1,系统中安装redis: 在命令提示行输入 pip install redis
2.2,python连接redis:在pycharm中输入如下代码
import redis
pool=redis.ConnectionPool(host='127.0.0.1',port=6379)
r=redis.Redis(connection_pool=pool)
向redis中写入数据可以用redis与python结合的方法写入string类型可以用set(),读取用get()
可结合数据的写入和读取测试是否连接成功(代码如下);
import redis
pool=redis.ConnectionPool(host='127.0.0.1',port=6379)
r=redis.Redis(connection_pool=pool)
r.set('name','qiyi')
print(r.get('name'))
3.结合以上知识点,和上一篇的内容,可以实现爬虫与redis数据库的结合,具体代码如下(可直接测试,有问题可留言交流):
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import csv
import redis
driver=webdriver.Chrome()
# 连接数据库
pool=redis.ConnectionPool(host='127.0.0.1',port=6379)
r=redis.Redis(connection_pool=pool)
for i in range(2,3):
# 打开网页
driver.get('https://www.liepin.com/zhaopin/?headId=a1e957264a1bd4dbe63ba17ab9e4e027&ckId=nrl2k9somybevobeexmuqoerjlj2sm78&oldCkId=a1e957264a1bd4dbe63ba17ab9e4e027&fkId=rnc274jfpr7oqs59z33zmbo0l8a2npkb&skId=rnc274jfpr7oqs59z33zmbo0l8a2npkb&sfrom=search_job_pc&key=运维工程师¤tPage={}&scene=page'.format(i))
# 添加cookie
cookie={
'name':'foo',
'value': 'bar',
}
driver.add_cookie(cookie)
# driver.quit()
# 隐式等待 等页面数据加载完之后再进行接下来的操作
driver.implicitly_wait(60)
lists = driver.find_element_by_xpath('/html/body/div[1]/div/section[1]/div/ul')
titles = lists.find_elements_by_xpath('./li/div/div/div[1]/div/a[1]/div[1]/div/div[1]')
#向redis写入数据
for n in range(0,len(titles)):
r.set('name{}'.format(n),'{}'.format(titles[n].text))
#关闭页面
driver.quit()