<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>

          Python爬取東方財富網(wǎng)資金流向數(shù)據(jù)并存入MySQL

          共 2575字,需瀏覽 6分鐘

           ·

          2021-10-23 02:52

          第一步:程序及應(yīng)用的準(zhǔn)備

          首先我們需要安裝selenium庫,使用命令pip install selenium;然后我們需要下載對應(yīng)的chromedriver,,安裝教程:。我們的chromedriver.exe應(yīng)該是在C:\Program Files\Google\Chrome\Application中(即讓它跟chrome.exe在同一個文件下)。

          下載完成后,我們還需要做兩件事:1.配置環(huán)境變量;

          2.將chromedriver.exe拖到python文件夾里,因為我用的是anaconda,所以我直接是放入D:\Anaconda中的。

          此時,我們所需的應(yīng)用已經(jīng)準(zhǔn)備好了。

          第二步:進入我們要爬取的網(wǎng)頁(),按F12進入調(diào)試模式.

          可定義文檔中的分區(qū)或節(jié),可以對同一個
          元素應(yīng)用 class 或 id 屬性,但是更常見的情況是只應(yīng)用其中一種。這兩者的主要差異是,class 用于元素組(類似的元素,或者可以理解為某一類元素),而 id 用于標(biāo)識單獨的唯一的元素。

          當(dāng)我們依次點擊右側(cè)div時,我們可以發(fā)現(xiàn),我們想要爬取的數(shù)據(jù)對應(yīng)的代碼為右側(cè)藍色部分,而下方的

          表示整個表格,表示我們的表頭即文字部分,表示表頭下方的數(shù)據(jù)部分。

          我們可以發(fā)現(xiàn),

          跟的每一行都是以開始,以結(jié)束的;在中,每一個格子是以中,每一個格子是以
          <strong id="afajh"><dl id="afajh"></dl></strong>
          開始,以結(jié)束的;在
          開始,以結(jié)束的。至此,我們對要爬取的數(shù)據(jù)的構(gòu)成有了一個大概的認(rèn)知。

          第三步:編寫程序

          etree.HTML()可以用來解析字符串格式的HTML文檔對象,將傳進去的字符串轉(zhuǎn)變成_Element對象。作為_Element對象,可以方便的使用getparent()、remove()、xpath()等方法。

          options常用屬性及方法為:

          • binary_location='':指定Chrome瀏覽器路徑- debuger_address=':指定調(diào)試路徑- headless: 無界面模式- add_argument():添加啟動參數(shù)- add_extension:添加本地插件- add_experimental_option:添加實驗選項- to_capablilities:將options轉(zhuǎn)為標(biāo)準(zhǔn)的capablitiies格式 selenium的page_source方法可以獲取到頁面源碼,提取出我們需要的信息。

          div[@class="dataview"表示我們通過class屬性的值定位到我們要爬取的表格div,‘/table’則是表示

          的下一級目錄。

          XPath 使用路徑表達式在 XML 文檔中選取節(jié)點。節(jié)點是通過沿著路徑或者 step 來選取的。下面列出了最有用的路徑表達式:|表達式|描述 |nodename|選取此節(jié)點的所有子節(jié)點。|/|從根節(jié)點選取(取子節(jié)點)。|//|從匹配選擇的當(dāng)前節(jié)點選擇文檔中的節(jié)點,而不考慮它們的位置(取子孫節(jié)點)。|.|選取當(dāng)前節(jié)點。|..|選取當(dāng)前節(jié)點的父節(jié)點。|@|選取屬性。

          from?selenium?import?webdriver??#導(dǎo)入模塊,selenium導(dǎo)入瀏覽器驅(qū)動,用get方法打開瀏覽器
          import?time
          import?re
          import?csv??#存儲數(shù)據(jù)
          from?lxml?import?etree?#數(shù)據(jù)的解析

          option?=?webdriver.ChromeOptions()???#網(wǎng)址獲取
          option.add_argument('headless')??#無界面啟動,即設(shè)置瀏覽器靜默
          #等價于?options.headless=True
          driver?=?webdriver.Chrome(options=option)??
          #等價于?driver?=?webdriver.Chrome(desired_capabilities=options.to_capablities())
          driver.get('https://data.eastmoney.com/zjlx/000040.html')?#打開瀏覽器
          time.sleep(2)?#推遲調(diào)用線程的運行,可表示進程掛起的時間,這里讓他推遲執(zhí)行2秒

          source?=?driver.page_source?#獲取頁面源碼
          mytree?=?etree.HTML(source)?#解析網(wǎng)頁內(nèi)容
          tables?=?mytree.xpath('//div[@class="dataview"]/table')?#定位表格
          for?i?in?range(len(tables)):?#循環(huán)表格
          ????onetable?=?[]
          ????trs?=?tables[i].xpath('.//tr')?#取出所有tr標(biāo)簽
          ????for?tr?in?trs:
          ????????ui?=?[]
          ????????for?td?in?tr:
          ????????????texts?=?td.xpath(".//text()")?#取出所有td標(biāo)簽下的文本
          ????????????mm?=?[]
          ????????????for?text?in?texts:
          ????????????????mm.append(text.strip(""))?#去掉所有空格、換行符
          ????????????ui.append(','.join(mm))
          ????????onetable.append(ui)?#整張表格

          with?open('data.csv',?'a',?newline='')?as?file:?#將數(shù)據(jù)寫入文件
          ????csv_file?=?csv.writer(file)
          ????for?i?in?onetable:
          ????????csv_file.writerow(i)?#按行寫入

          time.sleep(2)
          driver.close()?#關(guān)閉當(dāng)前窗口

          這樣我們就可以把一個股票的歷史資金流向的數(shù)據(jù)放在一個csv文件里了,接下去考慮到存儲問題,我們可以嘗試連接MySQL,將數(shù)據(jù)放入MySQL中。


          瀏覽 42
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
            <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>
                    天天日日夜夜成人黄色电影 | 亚洲色色导航 | 国产在视频一区二区三区吞精 | 小早川怜子与黑人AV | 国产一线在线观看 |