python--爬取京东美食首页商品信息(名称及价格)

#刚刚加入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()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值