首页 > 数据库 >【爬虫实战】——利用bs4和sqlalchemy操作mysql数据库,实现网站多行数据表格爬取数据

【爬虫实战】——利用bs4和sqlalchemy操作mysql数据库,实现网站多行数据表格爬取数据

时间:2024-08-28 18:15:12浏览次数:15  
标签:10 sqlalchemy name bs4 板卷 爬取 Q235B 1500 热轧板

前言

此篇接上一篇的内容,在其基础上爬取网站的多行表格数据,以及把数据写入到mysql数据库中

目录

  • 一、定位表格查找元素
  • 二、提取数据
  • 三、写入mysql数据库
  • 四、附录

一、定位表格查找元素

首先打开网站,如图需要爬取多行数据的表格,利用查找元素定位,看图中分析得知我要爬取的是tr下的td数据,所以先查找到tr行

    def script(self):
        # 先定位查找到tr行元素
        trs = self.soup().select('.content>table>tbody>tr')
        print(trs)
【查看运行结果:点击查看代码】
[<tr><td align="center" colspan="8">2024年8月27日天津热轧板卷价格今日报价表(新)_最新价格行情走势</td></tr>, <tr><td>品名</td><td>规格(mm)</td><td>材质</td><td>产地</td><td>价格(元/吨)</td><td>涨跌</td><td>备注</td></tr>, <tr><td>热轧板卷</td><td>2.0*1250*C</td><td>Q235B</td><td>河钢承钢</td><td>3320</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>2.5*1250*C</td><td>Q235B</td><td>河钢唐钢</td><td>3270</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>2.5*1250*C</td><td>Q235B</td><td>通钢</td><td>3260</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>2.5*1250*C</td><td>Q235B</td><td>河钢承钢</td><td>3270</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>2.75*1250*C</td><td>Q235B</td><td>河钢承钢</td><td>3210</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>2.75*1500*C</td><td>Q235B</td><td>包钢</td><td>3210</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>2.75*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3210</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>2.75*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3210</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>2.75*1500*C</td><td>Q235B</td><td>通钢</td><td>3200</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.0*1500*C</td><td>Q235B</td><td>包钢</td><td>3190</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.0*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3190</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.0*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3190</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>3.0*1500*C</td><td>Q235B</td><td>通钢</td><td>3180</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.5*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.5*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.5*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>3.5*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.5*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3170</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.75*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>3.75*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.75*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>3.75*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>3.75*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.5*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.5*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.5*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>4.5*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.5*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.75*1500*C</td><td>Q235B</td><td>首钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.75*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.75*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.75*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>4.75*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>4.75*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>5.5*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.5*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.5*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>5.5*1500*C</td><td>Q235B</td><td>首钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.5*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.5*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>5.75*1500*C</td><td>Q235B</td><td>首钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>7.5-11.75*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>7.5-11.75*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>7.5-11.75*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td> </td></tr>, <tr><td>热轧板卷</td><td>7.5-11.75*1500*C</td><td>Q235B</td><td>首钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>7.5-11.75*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>7.5-11.75*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1500*C</td><td>Q235B</td><td>首钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1500*C</td><td>Q235B</td><td>包钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1500*C</td><td>Q235B</td><td>河钢承钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1500*C</td><td>Q235B</td><td>河钢唐钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1500*C</td><td>Q235B</td><td>首钢</td><td>3160</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1500*C</td><td>Q235B</td><td>本钢</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1500*C</td><td>Q235B</td><td>沧州中铁</td><td>3150</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*1800*C</td><td>Q235B</td><td>包钢</td><td>3290</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*1800*C</td><td>Q235B</td><td>包钢</td><td>3290</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*1800*C</td><td>Q235B</td><td>包钢</td><td>3300</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>5.75*2000*C</td><td>Q235B</td><td>包钢</td><td>3310</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>7.75*2000*C</td><td>Q235B</td><td>包钢</td><td>3310</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.5*2000*C</td><td>Q235B</td><td>包钢</td><td>3310</td><td>涨10</td><td></td></tr>, <tr><td>热轧板卷</td><td>13.75*2000*C</td><td>Q235B</td><td>包钢</td><td>3310</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>4.75*1500*C</td><td>Q355B</td><td>包钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>4.75*1500*C</td><td>Q355B</td><td>河钢承钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>4.75*1500*C</td><td>Q355B</td><td>河钢唐钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>4.75*1500*C</td><td>Q355B</td><td>通钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>4.75*1500*C</td><td>Q355B</td><td>本钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.5*1500*C</td><td>Q355B</td><td>包钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.5*1500*C</td><td>Q355B</td><td>河钢承钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.5*1500*C</td><td>Q355B</td><td>河钢唐钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.5*1500*C</td><td>Q355B</td><td>通钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.5*1500*C</td><td>Q355B</td><td>本钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.75*1500*C</td><td>Q355B</td><td>包钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.75*1500*C</td><td>Q355B</td><td>河钢承钢</td><td>3340</td><td>涨10</td><td> </td></tr>, <tr><td>低合金板卷</td><td>5.75*1500*C</td><td>Q355B</td><td>河钢唐钢</td><td>3340</td><td>涨10</td><td> </td></tr>, <tr><td>低合金板卷</td><td>5.75*1500*C</td><td>Q355B</td><td>通钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>5.75*1500*C</td><td>Q355B</td><td>本钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*1500*C</td><td>Q355B</td><td>包钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*1500*C</td><td>Q355B</td><td>河钢承钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*1500*C</td><td>Q355B</td><td>河钢唐钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*1500*C</td><td>Q355B</td><td>通钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*1500*C</td><td>Q355B</td><td>本钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>11.75*1500*C</td><td>Q355B</td><td>包钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>11.75*1500*C</td><td>Q355B</td><td>河钢承钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>11.75*1500*C</td><td>Q355B</td><td>河钢唐钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>11.75*1500*C</td><td>Q355B</td><td>通钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>11.75*1500*C</td><td>Q355B</td><td>本钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*1500*C</td><td>Q355B</td><td>包钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*1500*C</td><td>Q355B</td><td>河钢承钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*1500*C</td><td>Q355B</td><td>河钢唐钢</td><td>3340</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*1500*C</td><td>Q355B</td><td>通钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*1500*C</td><td>Q355B</td><td>本钢</td><td>3330</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>7.75*1800*C</td><td>Q355B</td><td>包钢</td><td>3520</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*1800*C</td><td>Q355B</td><td>包钢</td><td>3520</td><td>涨10</td><td> </td></tr>, <tr><td>低合金板卷</td><td>13.5*1800*C</td><td>Q355B</td><td>包钢</td><td>3520</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*1800*C</td><td>Q355B</td><td>包钢</td><td>3520</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>7.75*2000*C</td><td>Q355B</td><td>包钢</td><td>3530</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>9.75*2000*C</td><td>Q355B</td><td>包钢</td><td>3530</td><td>涨10</td><td> </td></tr>, <tr><td>低合金板卷</td><td>13.5*2000*C</td><td>Q355B</td><td>包钢</td><td>3530</td><td>涨10</td><td></td></tr>, <tr><td>低合金板卷</td><td>13.75*2000*C</td><td>Q355B</td><td>包钢</td><td>3530</td><td>涨10</td><td></td></tr>]

二、提取数据

我们可以看到爬取出每行的tr和tr下面的td数据,接下来利用for循环把tr每行的文字提取出来,但是前两行是我不需要的,我只要第三行之后的数据


代码如下:

    def __init__(self):


        # self.url = "https://www.cnblogs.com/Owen-ET/p/14523426.html"
        self.url = "http://www.gtgqw.com/j/showhz2136672.html"
        # url = "http://www.example.com"
        self.dic = {
            "报价": []
        }


    def script(self):

        trs = self.soup().select('.content>table>tbody>tr')
        print(trs)
        print("=========================此处代码↓========================================")
        for tr in trs:
            if (tr != trs[0])&(tr != trs[1]):
                movie = {}
                infos = list(tr.stripped_strings)
                print(infos)    # 输出结果①:把td里面的值遍历出来组成数组
                movie['pin_name'] = infos[0]
                movie['guige'] = infos[1]
                movie['caizhi'] = infos[2]
                movie['chandi'] = infos[3]
                movie['jiage'] = infos[4]
                movie['zhangdie'] = infos[5]
                # 
                self.dic["报价"].append(movie)
        print("========================此处代码↑=========================================")
        return self.dic    # 输出结果②:把每行td数组里的元素赋上键名,组成键值对
【输出结果①:点击查看代码】
['热轧板卷', '2.0*1250*C', 'Q235B', '河钢承钢', '3320', '涨10']
['热轧板卷', '2.5*1250*C', 'Q235B', '河钢唐钢', '3270', '涨10']
['热轧板卷', '2.5*1250*C', 'Q235B', '通钢', '3260', '涨10']
['热轧板卷', '2.5*1250*C', 'Q235B', '河钢承钢', '3270', '涨10']
['热轧板卷', '2.75*1250*C', 'Q235B', '河钢承钢', '3210', '涨10']
['热轧板卷', '2.75*1500*C', 'Q235B', '包钢', '3210', '涨10']
['热轧板卷', '2.75*1500*C', 'Q235B', '河钢承钢', '3210', '涨10']
['热轧板卷', '2.75*1500*C', 'Q235B', '河钢唐钢', '3210', '涨10']
['热轧板卷', '2.75*1500*C', 'Q235B', '通钢', '3200', '涨10']
['热轧板卷', '3.0*1500*C', 'Q235B', '包钢', '3190', '涨10']
['热轧板卷', '3.0*1500*C', 'Q235B', '河钢承钢', '3190', '涨10']
['热轧板卷', '3.0*1500*C', 'Q235B', '河钢唐钢', '3190', '涨10']
['热轧板卷', '3.0*1500*C', 'Q235B', '通钢', '3180', '涨10']
['热轧板卷', '3.5*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '3.5*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '3.5*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '3.5*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '3.5*1500*C', 'Q235B', '沧州中铁', '3170', '涨10']
['热轧板卷', '3.75*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '3.75*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '3.75*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '3.75*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '3.75*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '4.5*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '4.5*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '4.5*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '4.5*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '4.5*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '4.75*1500*C', 'Q235B', '首钢', '3160', '涨10']
['热轧板卷', '4.75*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '4.75*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '4.75*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '4.75*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '4.75*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '5.5*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '5.5*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '5.5*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '5.5*1500*C', 'Q235B', '首钢', '3160', '涨10']
['热轧板卷', '5.5*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '5.5*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '5.75*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '5.75*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '5.75*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '5.75*1500*C', 'Q235B', '首钢', '3160', '涨10']
['热轧板卷', '5.75*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '5.75*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '7.5-11.75*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '7.5-11.75*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '7.5-11.75*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '7.5-11.75*1500*C', 'Q235B', '首钢', '3160', '涨10']
['热轧板卷', '7.5-11.75*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '7.5-11.75*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '13.5*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '13.5*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '13.5*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '13.5*1500*C', 'Q235B', '首钢', '3160', '涨10']
['热轧板卷', '13.5*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '13.5*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '13.75*1500*C', 'Q235B', '包钢', '3160', '涨10']
['热轧板卷', '13.75*1500*C', 'Q235B', '河钢承钢', '3160', '涨10']
['热轧板卷', '13.75*1500*C', 'Q235B', '河钢唐钢', '3160', '涨10']
['热轧板卷', '13.75*1500*C', 'Q235B', '首钢', '3160', '涨10']
['热轧板卷', '13.75*1500*C', 'Q235B', '本钢', '3150', '涨10']
['热轧板卷', '13.75*1500*C', 'Q235B', '沧州中铁', '3150', '涨10']
['热轧板卷', '5.75*1800*C', 'Q235B', '包钢', '3290', '涨10']
['热轧板卷', '13.5*1800*C', 'Q235B', '包钢', '3290', '涨10']
['热轧板卷', '13.75*1800*C', 'Q235B', '包钢', '3300', '涨10']
['热轧板卷', '5.75*2000*C', 'Q235B', '包钢', '3310', '涨10']
['热轧板卷', '7.75*2000*C', 'Q235B', '包钢', '3310', '涨10']
['热轧板卷', '13.5*2000*C', 'Q235B', '包钢', '3310', '涨10']
['热轧板卷', '13.75*2000*C', 'Q235B', '包钢', '3310', '涨10']
['低合金板卷', '4.75*1500*C', 'Q355B', '包钢', '3340', '涨10']
['低合金板卷', '4.75*1500*C', 'Q355B', '河钢承钢', '3340', '涨10']
['低合金板卷', '4.75*1500*C', 'Q355B', '河钢唐钢', '3340', '涨10']
['低合金板卷', '4.75*1500*C', 'Q355B', '通钢', '3330', '涨10']
['低合金板卷', '4.75*1500*C', 'Q355B', '本钢', '3330', '涨10']
['低合金板卷', '5.5*1500*C', 'Q355B', '包钢', '3340', '涨10']
['低合金板卷', '5.5*1500*C', 'Q355B', '河钢承钢', '3340', '涨10']
['低合金板卷', '5.5*1500*C', 'Q355B', '河钢唐钢', '3340', '涨10']
['低合金板卷', '5.5*1500*C', 'Q355B', '通钢', '3330', '涨10']
['低合金板卷', '5.5*1500*C', 'Q355B', '本钢', '3330', '涨10']
['低合金板卷', '5.75*1500*C', 'Q355B', '包钢', '3340', '涨10']
['低合金板卷', '5.75*1500*C', 'Q355B', '河钢承钢', '3340', '涨10']
['低合金板卷', '5.75*1500*C', 'Q355B', '河钢唐钢', '3340', '涨10']
['低合金板卷', '5.75*1500*C', 'Q355B', '通钢', '3330', '涨10']
['低合金板卷', '5.75*1500*C', 'Q355B', '本钢', '3330', '涨10']
['低合金板卷', '9.75*1500*C', 'Q355B', '包钢', '3340', '涨10']
['低合金板卷', '9.75*1500*C', 'Q355B', '河钢承钢', '3340', '涨10']
['低合金板卷', '9.75*1500*C', 'Q355B', '河钢唐钢', '3340', '涨10']
['低合金板卷', '9.75*1500*C', 'Q355B', '通钢', '3330', '涨10']
['低合金板卷', '9.75*1500*C', 'Q355B', '本钢', '3330', '涨10']
['低合金板卷', '11.75*1500*C', 'Q355B', '包钢', '3340', '涨10']
['低合金板卷', '11.75*1500*C', 'Q355B', '河钢承钢', '3340', '涨10']
['低合金板卷', '11.75*1500*C', 'Q355B', '河钢唐钢', '3340', '涨10']
['低合金板卷', '11.75*1500*C', 'Q355B', '通钢', '3330', '涨10']
['低合金板卷', '11.75*1500*C', 'Q355B', '本钢', '3330', '涨10']
['低合金板卷', '13.75*1500*C', 'Q355B', '包钢', '3340', '涨10']
['低合金板卷', '13.75*1500*C', 'Q355B', '河钢承钢', '3340', '涨10']
['低合金板卷', '13.75*1500*C', 'Q355B', '河钢唐钢', '3340', '涨10']
['低合金板卷', '13.75*1500*C', 'Q355B', '通钢', '3330', '涨10']
['低合金板卷', '13.75*1500*C', 'Q355B', '本钢', '3330', '涨10']
['低合金板卷', '7.75*1800*C', 'Q355B', '包钢', '3520', '涨10']
['低合金板卷', '9.75*1800*C', 'Q355B', '包钢', '3520', '涨10']
['低合金板卷', '13.5*1800*C', 'Q355B', '包钢', '3520', '涨10']
['低合金板卷', '13.75*1800*C', 'Q355B', '包钢', '3520', '涨10']
['低合金板卷', '7.75*2000*C', 'Q355B', '包钢', '3530', '涨10']
['低合金板卷', '9.75*2000*C', 'Q355B', '包钢', '3530', '涨10']
['低合金板卷', '13.5*2000*C', 'Q355B', '包钢', '3530', '涨10']
['低合金板卷', '13.75*2000*C', 'Q355B', '包钢', '3530', '涨10']
【输出结果②:点击查看代码】
{'报价': [{'pin_name': '热轧板卷', 'guige': '2.0*1250*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3320', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.5*1250*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3270', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.5*1250*C', 'caizhi': 'Q235B', 'chandi': '通钢', 'jiage': '3260', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.5*1250*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3270', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.75*1250*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3210', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.75*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3210', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3210', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3210', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '2.75*1500*C', 'caizhi': 'Q235B', 'chandi': '通钢', 'jiage': '3200', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.0*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3190', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.0*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3190', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.0*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3190', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.0*1500*C', 'caizhi': 'Q235B', 'chandi': '通钢', 'jiage': '3180', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.5*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.5*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.5*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3170', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.75*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.75*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '3.75*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.5*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.5*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.5*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q235B', 'chandi': '首钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q235B', 'chandi': '首钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q235B', 'chandi': '首钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.5-11.75*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.5-11.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.5-11.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.5-11.75*1500*C', 'caizhi': 'Q235B', 'chandi': '首钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.5-11.75*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.5-11.75*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1500*C', 'caizhi': 'Q235B', 'chandi': '首钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢承钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q235B', 'chandi': '河钢唐钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q235B', 'chandi': '首钢', 'jiage': '3160', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q235B', 'chandi': '本钢', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q235B', 'chandi': '沧州中铁', 'jiage': '3150', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*1800*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3290', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*1800*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3290', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*1800*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3300', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '5.75*2000*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3310', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '7.75*2000*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3310', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.5*2000*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3310', 'zhangdie': '涨10'}, {'pin_name': '热轧板卷', 'guige': '13.75*2000*C', 'caizhi': 'Q235B', 'chandi': '包钢', 'jiage': '3310', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢承钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢唐钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q355B', 'chandi': '通钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '4.75*1500*C', 'caizhi': 'Q355B', 'chandi': '本钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢承钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢唐钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q355B', 'chandi': '通钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.5*1500*C', 'caizhi': 'Q355B', 'chandi': '本钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢承钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢唐钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q355B', 'chandi': '通钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '5.75*1500*C', 'caizhi': 'Q355B', 'chandi': '本钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*1500*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢承钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢唐钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*1500*C', 'caizhi': 'Q355B', 'chandi': '通钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*1500*C', 'caizhi': 'Q355B', 'chandi': '本钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '11.75*1500*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '11.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢承钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '11.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢唐钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '11.75*1500*C', 'caizhi': 'Q355B', 'chandi': '通钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '11.75*1500*C', 'caizhi': 'Q355B', 'chandi': '本钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢承钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q355B', 'chandi': '河钢唐钢', 'jiage': '3340', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q355B', 'chandi': '通钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*1500*C', 'caizhi': 'Q355B', 'chandi': '本钢', 'jiage': '3330', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '7.75*1800*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3520', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*1800*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3520', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.5*1800*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3520', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*1800*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3520', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '7.75*2000*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3530', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '9.75*2000*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3530', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.5*2000*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3530', 'zhangdie': '涨10'}, {'pin_name': '低合金板卷', 'guige': '13.75*2000*C', 'caizhi': 'Q355B', 'chandi': '包钢', 'jiage': '3530', 'zhangdie': '涨10'}]}

三、写入mysql数据库

把上一步提取到的数据,利用sqlalchemy操作写入mysql数据库中,首先前提

    def mysql(self):

        # 替换为你的数据库连接信息
        DATABASE_URI = 'mysql+pymysql://root:1234567@localhost:3306/baojia'

        # 创建数据库引擎
        engine = create_engine(DATABASE_URI)
        Session = sessionmaker(bind=engine)
        session = Session()

        # 定义JSON数据和表结构
        json_data = self.script()['报价']

        # 假设你有一个名为users的表
        metadata = MetaData(bind=engine)
        users_table = Table('banjuan', metadata, autoload_with=engine)

        # 解析JSON数据并插入到数据库
        for entry in json_data:
            ins = users_table.insert().values(pin_name=entry['pin_name'],
                                              guige=entry['guige'],
                                              caizhi=entry['caizhi'],
                                              chandi=entry['chandi'],
                                              jiage=entry['jiage'],
                                              zhangdie=entry['zhangdie'])
            session.execute(ins)

        # 提交更改
        session.commit()

配置数据库解析:'mysql+pymysql://root:1234567@localhost:3306/baojia'
可以参考我的相关文章也有说明:Owen_ET-《【测试平台开发】——05Flask后端api开发实战(二)—— SqlAlchemy 》 *****

【mysql】:使用的mysql数据库

【pymysql】:使用pymysql的引擎

【://scott】:数据库用户名

【:tiger】:数据库密码

【@localhost】:数据库地址

【/foo】:数据库的库名称

手动创建表结构:数据库名为【baojia】、表名为【banjuan】,以及各个字段值的类型、长度等

其中id设置为自动增加并且设置为键

【运行结果:查看数据库】

运行之后,mysql数据库的数据就插进来了

【完整代码】

import re
import json
import requests
from bs4 import BeautifulSoup as bs
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine, Table, MetaData


class BS:


    def __init__(self):


        # self.url = "https://www.cnblogs.com/Owen-ET/p/14523426.html"
        self.url = "http://www.gtgqw.com/j/showhz2136672.html"
        # url = "http://www.example.com"
        self.dic = {
            "报价": []
        }



    def soup(self):

        res = requests.get(self.url)
        soup = bs(res.text, 'html.parser')
        return soup


    def script(self):

        trs = self.soup().select('.content>table>tbody>tr')
        print(trs)
        print("=================================================================")
        print("=================================================================")
        for tr in trs:
            if (tr != trs[0])&(tr != trs[1]):
                movie = {}
                infos = list(tr.stripped_strings)
                print(infos)
                movie['pin_name'] = infos[0]
                movie['guige'] = infos[1]
                movie['caizhi'] = infos[2]
                movie['chandi'] = infos[3]
                movie['jiage'] = infos[4]
                movie['zhangdie'] = infos[5]
                self.dic["报价"].append(movie)
        print("=================================================================")
        print("=================================================================")
        return self.dic

    def data(self):

        # 生成json文件
        with open("报价.json", 'w', encoding='utf8') as f:
            json.dump(self.script(), f, ensure_ascii=False, indent=4)


    def mysql(self):

        # 替换为你的数据库连接信息
        DATABASE_URI = 'mysql+pymysql://root:1234567@localhost:3306/baojia'

        # 创建数据库引擎
        engine = create_engine(DATABASE_URI)
        Session = sessionmaker(bind=engine)
        session = Session()

        # 定义JSON数据和表结构
        json_data = self.script()['报价']

        # 假设你有一个名为users的表
        metadata = MetaData(bind=engine)
        users_table = Table('banjuan', metadata, autoload_with=engine)

        # 解析JSON数据并插入到数据库
        for entry in json_data:
            ins = users_table.insert().values(pin_name=entry['pin_name'],
                                              guige=entry['guige'],
                                              caizhi=entry['caizhi'],
                                              chandi=entry['chandi'],
                                              jiage=entry['jiage'],
                                              zhangdie=entry['zhangdie'])
            session.execute(ins)

        # 提交更改
        session.commit()


if __name__ == '__main__':
    print(BS().mysql())

四、附录

参考其他的文章:

from sqlalchemy import create_engine, Table, MetaData
from sqlalchemy.orm import sessionmaker
import json
 
# 替换为你的数据库连接信息
DATABASE_URI = 'mysql+pymysql://user:password@localhost:3306/database'
 
# 创建数据库引擎
engine = create_engine(DATABASE_URI)
Session = sessionmaker(bind=engine)
session = Session()
 
# 定义JSON数据和表结构
json_data = '[{"id": 1, "name": "Alice", "age": 30}, {"id": 2, "name": "Bob", "age": 25}]'
 
# 假设你有一个名为users的表,有id, name, age字段
metadata = MetaData(bind=engine)
users_table = Table('users', metadata, autoload_with=engine)
 
# 解析JSON数据并插入到数据库
data = json.loads(json_data)
for entry in data:
    ins = users_table.insert().values(id=entry['id'], name=entry['name'], age=entry['age'])
    session.execute(ins)
 
# 提交更改
session.commit()

标签:10,sqlalchemy,name,bs4,板卷,爬取,Q235B,1500,热轧板
From: https://www.cnblogs.com/Owen-ET/p/18385290

相关文章

  • 用Python爬取地图信息被捕了?Python主要有哪些用途:Web开发、数据科学和人工智能、科学
    近日,一起关于导航电子地图“拥堵延时指数”数据权益的不正当竞争纠纷案在北京市朝阳区人民法院落下帷幕,引发热议。 爬虫确实是学习Python最有意思的一件事情,也是Python很擅长的事情之一。很多铁铁日常使用Python爬天爬地,也还有很多想学爬虫来自动获取数据。如果你正在学习......
  • 网络爬虫之scrapy爬取某招聘网手机APP发布信息
      本文采用scrapy爬虫框架爬取前程无忧手机APP发布的招聘信息,重点对APP抓包分析、爬虫设计思路进行介绍。1引言        过段时间要开始找新工作了,爬取一些岗位信息来分析一下吧。目前主流的招聘网站包括前程无忧、智联、BOSS直聘、拉勾等等。有段时间时间没爬......
  • 在 SQLAlchemy 中实现数据处理的时候,实现表自引用、多对多、联合查询,有序id等常见的一
    有时候,我们在使用SQLAlchemy操作某些表的时候,需要使用外键关系来实现一对多或者多对多的关系引用,以及对多表的联合查询,有序列的uuid值或者自增id值,字符串的分拆等常见处理操作。1、在SQLAlchemy中定义具有嵌套children关系的表要在SQLAlchemy中定义具有嵌套children关系......
  • 使用C#爬取快手作者主页,并下载视频/图集
    最近发现一些快手的作者,作品还不错,出于学习研究的目的,决定看一下怎么爬取数据。现在网上有一些爬虫工具,不过大部分都失效了,或者不开源。于是自己就写了一个小工具。先看一下成果:软件只需要填写作者uid以及网页版的请求Cookie,即可实现自动下载,下载目录在程序根目录下的Download......
  • 【Python脚本】爬取网络小说
    作为重度小说爱好者,小说下载网站经常被打击,比如:笔趣阁,奇书网,爱书网,80电子书.这些网站的下载链接经常会失效,所以,我想自己动手写一个爬虫程序,抓取网络小说,并下载到本地.给出两种思路的python脚本,脚本并不对所有小说网站通用,具体使用时,需要根据网站的网页结构进行......
  • 【Python爬虫】批量爬取图片的简单案例
    @目录1.原理2.寻找批量的图片URL的储存地址2.1百度2.2搜狗2.3必应2.4总结3.处理存储图片URL的请求头4.完整demo1.原理网页中的图片有自己的URL,访问这些URL可以直接得到图片,譬如,访问下面这个URL,你就能得到一张图片:https://img-blog.csdnimg.cn/a3bad4725ba94301b7cba7dd820......
  • 【Python爬虫实战】天气数据爬取+数据可视化(完整代码)_爬取天气预报数据并做可视化分析
    一、选题的背景随着人们对天气的关注逐渐增加,天气预报数据的获取与可视化成为了当今的热门话题,天气预报我们每天都会关注,天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过Python网络爬虫爬取天气预报让我们快......
  • 爬虫案例1-爬取图片的三种方式之一:DrissionPage篇(3)
    @目录前言DrissionPage介绍实战共勉博客前言继requests篇和selenium篇,本文是爬取图片的最后一个案例,利用了python第三方库DrissionPage来自动化爬取图片。当然,爬取图片肯定不止这三种方法,还有基于python的scrapy框架,基于node.js的express框架以及基于Java的webmagic框架等等。D......
  • Python开发中,SQLAlchemy 的同步操作和异步操作封装,以及常规CRUD的处理。
    在我们使用Python来和数据库打交道中,SQLAlchemy是一个非常不错的ORM工具,通过它我们可以很好的实现多种数据库的统一模型接入,而且它提供了非常多的特性,通过结合不同的数据库驱动,我们可以实现同步或者异步的处理封装。1、SQLAlchemy介绍SQLAlchemy 是一个功能强大且灵活的Python......
  • 爬取豆瓣TOP250电影详解
    一.分析网页DOM树结构1.分析网页结构及简单爬取豆瓣(Douban)是一个社区网站,创立于2005年3月6日。该网站以书影音起家,提供关于书籍、电影、音乐等作品的信息,其作品描述和评论都是由用户提供(User-GeneratedContent,简称UGC),是Web2.0网站中具有特色的一个网站。该网站提供了书影音......