#刚刚加入python,写的哪里不对,请多关照!
import requests
import pymysql
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
#数据库操作;
def mysql(p_name,p_price): #数据库操作函数;
db = pymysql.connect(host="192.168.79.167",user="root",password="123",db="zhang",port=3306) #建立数据库的连接;
cur = db.cursor() #声明一个游标出来;
sql = "insert into meishi(name,price) values (\"%s\",\"%s\");" % (p_name,p_price) #注意占位符,要添加引号,还要转义,否则数据加载不进去;
cur.execute(sql) #执行sql命令;
db.commit() #提交修改信息,否则数据库,不会更新;
driver = webdriver.Chrome() #声明一个谷歌浏览器驱动;
def get_info(): #建立一个函数获取商品信息;
driver.get('https://www.jd.com/') #打开京东商城;
driver.find_element_by_id('key').send_keys('美食') #模拟在搜索框输入美食;
driver.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click() #点击搜索按钮;
time.sleep(10) #不会判断网页加载完全的返回信息,所以只能等待10s;
driver.find_element_by_xpath('//*[@id="J_bottomPage"]/span[1]/a[9]/em').click() #模拟点击下一页;
time.sleep(10)
#info = driver.page_source
for num in range(60): #利用循环提取出商品的名称及价格信息,还可以提取出产地,url等;
data = 'li:nth-child(%s)' % str(num +1)
#商品名字信息:
name = driver.find_element_by_css_selector('#J_goodsList > ul > %s > div > div.p-name.p-name-type-2 > a > em' % data).text
price = driver.find_element_by_css_selector('#J_goodsList > ul > %s > div > div.p-price > strong > i' % data).text
mysql(name,price) #将信息存入到mysql数据库中;
# print(name,price) #测试;获取到的商品信息是否正确;
# print('=' * 25) #分割每次循环得到的结果,方便检查采集到的信息;
if __name__ == '__main__': #主函数;
get_info()