<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這個網(wǎng)絡(luò)爬蟲代碼,拿到數(shù)據(jù)之后如何存到csv文件中去?

          共 7249字,需瀏覽 15分鐘

           ·

          2024-04-18 09:00

          點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          渚云低暗度,關(guān)月冷相隨。

          大家好,我是皮皮。

          一、前言

          還是昨天的那個網(wǎng)絡(luò)爬蟲問題,大佬們,幫忙看看這個網(wǎng)絡(luò)爬蟲代碼怎么修改?那個粉絲說自己不熟悉pandas,用pandas做的爬蟲,雖然簡潔,但是自己不習(xí)慣,想要在他自己的代碼基礎(chǔ)上進(jìn)行修改,獲取數(shù)據(jù)的代碼已經(jīng)寫好了,就差存儲到csv中去了。

          他的原始代碼如下:

          import requests
          from lxml import etree
          import csv
          import time
          import pandas as pd 


          def gdpData(page):
              url = f'https://www.hongheiku.com/category/gdjsgdp/page/{page}'
              headers ={'user-agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
              resp = requests.get(url,headers = headers)
          # print(resp.text)
              data(resp.text)
          file = open('data.csv',mode='a',encoding='utf-8',newline='')
          csv_write=csv.DictWriter(file,fieldnames=['排名','地區(qū)','GDP','年份'])
          csv_write.writeheader()
          def data(text):
              e = etree.HTML(text)
              lst = e.xpath('//*[@id="tablepress-48"]/tbody/tr[@class="even"]')
              for l in lst:
                  no = l.xpath('./td[1]/center/span/text()')
                  name = l.xpath('./td[2]/a/center/text()')
                  team = l.xpath('./td[3]/center/text()')  
                  year = l.xpath('./td[4]/center/text()')
                  data_dict = {
                      '排名':no,
                      '地區(qū)':name,
                      'GDP':team,
                      '年份':year
                  }
                  print(f'排名:{no} 地區(qū):{name} GDP:{team} 年份:{year} ')
                  csv_write.writerow(data_dict)
          file.close()
          url = 'https://www.hongheiku.com/category/gdjsgdp'
          headers ={'user-agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
          resp = requests.get(url,headers = headers)
          # print(resp.text)
          data(resp.text)
          e = etree.HTML(resp.text)
          #//*[@id="tablepress-48"]/tbody/tr[192]/td[3]/center
          count = e.xpath('//div[@class="pagination pagination-multi"][last()]/ul/li[last()]/span/text()')[0].split(' ')[1]
          for index in range(int(count) - 1):
              gdpData(index + 2)

          二、實現(xiàn)過程

          這里粉絲給了一瓶冰紅茶的費用,一個熱心市民給了一份代碼,在他的代碼基礎(chǔ)上進(jìn)行修改的,代碼如下:

          import requests
          from lxml import etree
          import csv
          import time
          import pandas as pd


          def gdpData(page):
              url = f'https://www.hongheiku.com/category/gdjsgdp/page/{page}'
              headers ={'user-agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
              resp = requests.get(url,headers = headers)
          # print(resp.text)
              data(resp.text)

          def data(text):
              file = open('data.csv', mode='a', encoding='utf-8', newline='')
              csv_write = csv.DictWriter(file, fieldnames=['排名''地區(qū)''GDP''年份'])
              csv_write.writeheader()
              e = etree.HTML(text)
              lst = e.xpath('//*[@id="tablepress-48"]/tbody/tr[@class="even"]')
              for l in lst:
                  no = ''.join(l.xpath('./td[1]/center/span/text()'))
                  name = ''.join(l.xpath('./td[2]/a/center/text()')[0])
                  team = ''.join(l.xpath('./td[3]/center/text()'))
                  year = ''.join(l.xpath('./td[4]/center/text()'))
                  data_dict = {
                      '排名':no,
                      '地區(qū)':name,
                      'GDP':team,
                      '年份':year
                  }
                  print(f'排名:{no} 地區(qū):{name} GDP:{team} 年份:{year} ')
                  csv_write.writerow(data_dict)
              file.close()

          url = 'https://www.hongheiku.com/category/gdjsgdp'
          headers ={'user-agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
          resp = requests.get(url,headers = headers)
          # print(resp.text)
          data(resp.text)

          e = etree.HTML(resp.text)
          #//*[@id="tablepress-48"]/tbody/tr[192]/td[3]/center
          count = e.xpath('//div[@class="pagination pagination-multi"][last()]/ul/li[last()]/span/text()')[0].split(' ')[1]
          for index in range(int(count) - 1):
              gdpData(index + 2)

          代碼運行之后,數(shù)據(jù)就存儲到csv中去了。

          順利地解決了粉絲的問題!

          三、總結(jié)

          大家好,我是皮皮。這篇文章主要盤點了一個Python網(wǎng)絡(luò)爬蟲后數(shù)據(jù)存儲的問題,文中針對該問題,給出了具體的解析和代碼實現(xiàn),幫助粉絲順利解決了問題。

          最后感謝粉絲【藍(lán)桉】提問,感謝【熱心市民】給出的思路和代碼解析,感謝【eric】等人參與學(xué)習(xí)交流。

          大家在學(xué)習(xí)過程中如果有遇到問題,歡迎隨時聯(lián)系我解決(我的微信:pdcfighting),應(yīng)粉絲要求,我創(chuàng)建了一些高質(zhì)量的Python付費學(xué)習(xí)交流群和付費接單群,歡迎大家加入我的Python學(xué)習(xí)交流群和接單群!

          小伙伴們,快快用實踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群

          萬水千山總是情,點個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~~

          瀏覽 737
          4點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          4點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女激情视频网站 | 99精品视频国产 | 欧美99热 | 鸡巴视频αV | 一起草视频网 |