python学習ノートselenium
14577 ワード
一.seleniumは強力なpythonライブラリで、数行のコードを使ってブラウザを制御し、自動的に開いたり、入力したり、クリックしたりすることができます.まるで本当のユーザーが操作しているようです.
1.ローカル環境のブラウザ設定:
2.データの取得:
seleniumがデータを抽出する方法:
方法
さぎょう
find_element_by_tag_name
要素のラベル名で選択
find_element_by_class_name
要素のclass属性で選択
find_element_by_id
要素のid選択による
find_element_by_name
要素のname属性で選択
find_element_by_link_text
リンクテキストによるハイパーリンクの取得
find_element_by_partial_link_text
リンクされた一部のテキストからハイパーリンクを取得
複数のデータを抽出する方法:上記のすべての方法のelementを複素elementsに置き換えるとよい.
3.selenium解析とデータ抽出:
4.自動操作ブラウザ:
ケース:
QQ音楽の中で周杰倫の歌曲の評論を登ります:
1.ローカル環境のブラウザ設定:
from selenium import webdriver # selenium webdriver
driver = webdriver.Chrome() # Chrome, Chrome
2.データの取得:
import time
# Chrome
from selenium import webdriver # selenium webdriver
driver = webdriver.Chrome() # Chrome, Chrome
driver.get('URL') #
time.sleep(1)
driver.close() #
seleniumがデータを抽出する方法:
方法
さぎょう
find_element_by_tag_name
要素のラベル名で選択
find_element_by_class_name
要素のclass属性で選択
find_element_by_id
要素のid選択による
find_element_by_name
要素のname属性で選択
find_element_by_link_text
リンクテキストによるハイパーリンクの取得
find_element_by_partial_link_text
リンクされた一部のテキストからハイパーリンクを取得
# ' , !'
find_element_by_tag_name:
# , !
# find_element_by_tag_name('h1')
find_element_by_class_name: class
# , !
# find_element_by_class_name('title')
find_element_by_id: id
# , !
# find_element_by_id('title')
find_element_by_name: name
# , !
# find_element_by_name('hello')
#
find_element_by_link_text:
# こんにちは、スパイダーマン!
# find_element_by_link_text(' , !')
find_element_by_partial_link_text:
# こんにちは、スパイダーマン!
# find_element_by_partial_link_text(' ')
複数のデータを抽出する方法:上記のすべての方法のelementを複素elementsに置き換えるとよい.
3.selenium解析とデータ抽出:
from selenium.webdriver.chrome.options import Options # options Options
import time
from bs4 import BeautifulSoup
chrome_options = Options() # Option
chrome_options.add_argument('--headless') #
driver = RemoteWebDriver("http://chromedriver.python-class-fos.svc:4444/wd/hub", chrome_options.to_capabilities()) #
4.自動操作ブラウザ:
.send_keys() # ,
.click() #
.clear() #
ケース:
# Chrome
from selenium import webdriver # selenium webdriver
import time # time
driver = webdriver.Chrome() # Chrome, Chrome
driver.get('https://localprod.pandateacher.com/python-manuscript/hello-spiderman/') #
time.sleep(2) # ,
teacher = driver.find_element_by_id('teacher') # 【 】
teacher.send_keys(' ') #
assistant = driver.find_element_by_name('assistant') # 【 】
assistant.send_keys(' ') #
button = driver.find_element_by_class_name('sub') # 【 】
button.click() # 【 】
time.sleep(1)
driver.close() #
QQ音楽の中で周杰倫の歌曲の評論を登ります:
#
from selenium import webdriver
from bs4 import BeautifulSoup
import time
chrome_options = Options() # Option
chrome_options.add_argument('--headless') #
driver = RemoteWebDriver("http://chromedriver.python-class-fos.svc:4444/wd/hub", chrome_options.to_capabilities()) #
driver.get('https://y.qq.com/n/yqq/song/000xdZuV2LcQ19.html') #
time.sleep(2)
button = driver.find_element_by_class_name('js_get_more_hot') # 【 】
button.click() #
time.sleep(2) #
pageSource = driver.page_source # Elements
soup = BeautifulSoup(pageSource,'html.parser') # bs
comments = soup.find('ul',class_='js_hot_list').find_all('li',class_='js_cmt_li') # bs
print(len(comments)) # comments
for comment in comments: #
sweet = comment.find('p') #
print (' :%s
---
'%sweet.text) #
driver.close() # #
# Chrome :
from selenium import webdriver # selenium webdriver
from selenium.webdriver.chrome.options import Options # options Options
chrome_options = Options() # Option
chrome_options.add_argument('--headless') # Chrome
driver = webdriver.Chrome(options = chrome_options) # Chrome,