python爬取京东手机数据并存入数据库
时间: 2023-09-03 15:07:42 浏览: 152
好的,我可以为您提供一些简单的步骤:
1. 安装必要的库:requests、BeautifulSoup4、pymysql。
2. 使用 requests 库获取京东手机分类下的商品列表页面,并使用 BeautifulSoup4 库解析页面,得到商品链接。
3. 使用 requests 库获取每个商品页面,并使用 BeautifulSoup4 库解析页面,得到商品的名称、价格、评价等信息。
4. 使用 pymysql 库连接数据库,并创建一个表用于存储手机信息。
5. 将获取到的商品信息存入数据库中。
下面是一份简单的代码示例供您参考:
```
import requests
from bs4 import BeautifulSoup
import pymysql
# 获取商品列表页
def get_goods_list():
url = 'https://list.jd.com/list.html?cat=9987,653,655'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
goods_list = soup.select('.gl-item .p-name a')
for goods in goods_list:
get_goods_info(goods['href'])
# 获取商品信息
def get_goods_info(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
name = soup.select('.sku-name')[0].text.strip()
price = soup.select('.price')[0].text.strip()
comment_count = soup.select('#comment-count')[0].text.strip()
save_to_mysql(name, price, comment_count)
# 存储到数据库
def save_to_mysql(name, price, comment_count):
conn = pymysql.connect(host='localhost', user='root', password='123456', database='jd_phone')
cursor = conn.cursor()
sql = "INSERT INTO phone(name, price, comment_count) VALUES ('%s', '%s', '%s')" % (name, price, comment_count)
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
if __name__ == '__main__':
get_goods_list()
```
需要注意的是,该代码仅供参考,实际使用时还需要进行一些优化和改进,例如异常处理、分页爬取、增量更新等。
阅读全文