欢迎光临散文网 会员登陆 & 注册

把爬取到的数据存储到数据库中

2023-03-31 09:55 作者:寒冰之雪  | 我要投稿

import pymysql
import re
import requests

#爬取源代码
url='https://search.jd.com/Search?keyword=ctf&enc=utf-8&wq=ctf'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0'}
res=requests.get(url,headers=headers).text

def 过滤出需要的数据(res):
    s1=re.findall('<em>(.*?)</em>',res,re.S)
    li=[] #li用于存放商品名称,s1用于存放商品价格
    s2=re.findall('<i data-price=.*?>(.*?)</i>',res,re.S)
    for i in s1:
        st=''
        if '¥' in i and len(i)>1:
            st=i
        if '<font' in i:
          st=''.join(''.join(i.split(re.findall('<font.*?>',i)[0])).split('</font>'))
        if '<img' in i:
            st=st.strip('<img'+re.findall('<img(.*?)/>',st)[0]+'/>')
        if '<span' in i:
            st=''.join(''.join(st.split(re.findall('<span.*?>',st)[0])).split('</span>'))
        li.append(st.strip())
    lis=[]
    for i in li: #去除li里的空格
        if len(i)>1:
            lis.append(i)
    return lis,s2

def MySQL操作(lis,s2):
    db=pymysql.connect(host='localhost',port=3306,user='root',password='',charset='utf8')
    cur=db.cursor()
    cur.execute("create database 商品查询系统 character set utf8")
    cur.execute('use 商品查询系统')
    cur.execute('create table ctf书籍(书名 varchar(100),价格 varchar(100))')
    for i in range(len(s2)):
        sql="insert into ctf书籍(书名,价格) values ('%s','%s')"%(lis[i],s2[i])
        cur.execute(sql)
    db.commit()
    x=1    
    while x!='exit':
        x=input('输入书名:')
        sql=f"select * from ctf书籍 where 书名 like '%{x}%'"
        cur.execute(sql)
        data=cur.fetchall()
        for i in data:
            print(i[0],i[1])
    cur.close()
    db.close()
    
x=过滤出需要的数据(res)
MySQL操作(x[0], x[1])


链接:https://www.wolai.com/hbzx/aDPcfF7ePrfHAPMXCZeSc9


把爬取到的数据存储到数据库中的评论 (共 条)

分享到微博请遵守国家法律