作者ppoo1215 (po)
看板Python
標題[問題] 新手請益 關於抓資料
時間Sat Jun 2 17:28:45 2018
各位大神好,小弟上次問了問題卻沒有附上程式碼
還是有前輩願意回答 先謝謝
附上程式碼 以及我想做的事
從 玩股網的這個頁面
抓出*美林這個券商在 股票1101的進出明細
小弟目前做出來的方法
只能跑出 含有<td class="up">+150</td>.....
這樣的結果
想請問要怎麼做才能夠只選出 數字 然後將數字結果全部加總呢??
*電腦排版 手機可能格式會跑掉
在此感謝之前回應過的大神們 但小弟不才 python目前正在學習階段
有請大神們幫幫忙 謝謝
# -*- coding: utf-8 -*-
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.support.ui import Select
import time
driver = webdriver.Chrome()
driver.get('
https://www.wantgoo.com/stock/agentsata?types=8')
time.sleep(0.5)
driver.find_element_by_id("broker").click()
Select(driver.find_element_by_id("broker")).select_by_visible_text(u"美林")
time.sleep(0.5)
driver.find_element_by_id("stock").click()
Select(driver.find_element_by_id("stock")).select_by_value('1101') #index(int)
time.sleep(0.5)
driver.find_element_by_id("sendSubmit").click()
time.sleep(0.5)
html = driver.page_source
sp = BeautifulSoup(html,'lxml')
def has_class_but_no_id(tag):
return tag.has_attr('class') and not tag.has_attr('id')
data = sp.find(id = "datalist")
qq = data.find_all(has_class_but_no_id)
print (qq)
driver.close()
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.55.209
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1527931728.A.E08.html
→ kobe8112: 個人小小拙見建議你可以先大概了解一下html中 06/02 18:23
→ kobe8112: 元素、屬性、內容等基本組成的差別,然後這些專有名詞可 06/02 18:25
→ kobe8112: 能用英文來記憶,比較不會發生詞彙在中文定義不統一造成 06/02 18:26
→ kobe8112: 的混淆,大概了解一下之後,你就能區別你想要的跟程式碼 06/02 18:27
→ kobe8112: 抓的,到底是選擇的元素,還是元素的屬性、內容值 06/02 18:27
→ wefan: bs有get_text()這個方法取出內容 把最後改成qq.get_text() 06/02 21:25
→ wefan: 試試 06/02 21:25
→ ppoo1215: 謝謝上面兩位大神的提點,我繼續努力 06/02 22:24
推 D0128431: .text 就可以抓了啊 然後再用正則表達式抓150出來 06/03 00:48
→ ppoo1215: 回D大:我想用find all抓出所有我要的數值但是find all 06/03 11:46
→ ppoo1215: 不支援.text用法@@ 06/03 11:46
推 D0128431: Findall 指的是 找出所有符合的標籤 所以你無法直接.tex 06/03 13:41
→ D0128431: t 如果你選擇finall這個list裡面特定的item就可以用 .te 06/03 13:41
→ D0128431: xt 06/03 13:41
→ virgil246: 表格狀的可以試試pandas 06/03 13:55