所需要的庫
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
首先明確所要爬取的網(wǎng)頁,選擇調(diào)用方法,增加無界面模式的無頭參數(shù),然后調(diào)用,獲取網(wǎng)址,使頁面放大,為最大化窗口
url="https://maoyan.com/board/4"
options=webdriver.ChromeOptions()#選擇調(diào)用方法
options.add_argument("--headless")#無界面模式的無頭參數(shù)
driver=webdriver.Chrome(options=options)#讓無參數(shù)調(diào)用
driver.get(url)#打開頁面輸入地址并確認(rèn)
driver.maximize_window()#使頁面放大,最大化頁面窗口
time.sleep(3)#停留時間
獲取數(shù)據(jù)運(yùn)用XPATH函數(shù),將獲取的數(shù)據(jù)作為item,運(yùn)用XPATH函數(shù)獲取,
//*[@id='app']/div/div/div[1]/dl/dd為運(yùn)用谷歌瀏覽器,在更多工具中找到開發(fā)者工具,點(diǎn)擊圖片選擇的位置,將鼠標(biāo)放在你想要爬取的數(shù)據(jù)上點(diǎn)擊,自動跳轉(zhuǎn)代碼,查看代碼,對代碼行進(jìn)行右擊,選擇copy,copy xpath。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-799035.html
def get_data():
item_list=driver.find_elements(By.XPATH,"http://*[@id='app']/div/div/div[1]/dl/dd")#xpath是數(shù)字是div,selector是函數(shù)直接是class里的
for list in item_list:
item={}
info_list=list.text.split("\n")#每爬取一行換行
item['number']=info_list[0]
item['name'] = info_list[1]
item['star'] = info_list[2]
item['time'] = info_list[3]
item['score'] = info_list[4]
print(item)
pass
模仿人點(diǎn)擊下一頁,運(yùn)用 for語句,每10個一點(diǎn),停留5秒
for i in range(10):
time.sleep(5)
get_data()
driver.find_element(By.LINK_TEXT,"下一頁").click()
time.sleep(10)
driver.quit()#結(jié)束
同樣尋找下一頁所在位置,如果是這樣寫B(tài)y.LINK_TEXT,click()為點(diǎn)擊的意思
如果是如下界面,注意ID位置,有ID寫ID,沒有就寫B(tài)y.LINK_TEXT,click()。例如
driver.find_element(By.ID,"su").click()
.send_key寫內(nèi)容例如,同樣注重ID
driver.find_element(By.ID,"kw").send_keys("白鹿")
?代碼總結(jié)
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
url="https://maoyan.com/board/4"
options=webdriver.ChromeOptions()#調(diào)用方法
options.add_argument("--headless")#無界面模式無頭參數(shù)
driver=webdriver.Chrome(options=options)#讓無參數(shù)調(diào)用
driver.get(url)#打開頁面輸入地址并確認(rèn)
driver.maximize_window()#使頁面放大,最大化頁面窗口
time.sleep(3)#
def get_data():
item_list=driver.find_elements(By.XPATH,"http://*[@id='app']/div/div/div[1]/dl/dd")#xpath是數(shù)字是div,selector是函數(shù)直接是class里的
for list in item_list:
item={}
info_list=list.text.split("\n")
item['number']=info_list[0]
item['name'] = info_list[1]
item['star'] = info_list[2]
item['time'] = info_list[3]
item['score'] = info_list[4]
print(item)
pass
#模仿點(diǎn)擊下一頁
for i in range(10):
time.sleep(5)
get_data()
driver.find_element(By.LINK_TEXT,"下一頁").click()
time.sleep(10)
driver.quit()#結(jié)束
如果有錯誤請告訴一下,謝謝!文章來源:http://www.zghlxwxcb.cn/news/detail-799035.html
?
到了這里,關(guān)于selenium爬取網(wǎng)頁內(nèi)容,對網(wǎng)頁內(nèi)容進(jìn)行點(diǎn)擊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!