最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育python數(shù)據(jù)分析教程200集,Python數(shù)據(jù)分析師入門必備視頻

2023-07-22 09:32 作者:秋楓含藍  | 我要投稿

爬蟲流程梳理

import requests 
from bs4 import BeautifulSoup

# 指定url
url 來源 網(wǎng)址欄 數(shù)據(jù)中解析獲取
# 發(fā)請求 接響應(yīng)
response = requests.get(url)
# 獲取的內(nèi)容 響應(yīng)狀態(tài)碼 文本數(shù)據(jù) 字節(jié)數(shù)據(jù) 編碼 內(nèi)容 服務(wù)器響應(yīng)的編碼
# 判斷響應(yīng)是否成功
if response.status_code == 200:
 # 獲取響應(yīng)數(shù)據(jù)
 # 如果是對 圖片連接 視頻鏈接 音頻鏈接發(fā)請求 響應(yīng)的數(shù)據(jù)字節(jié)數(shù)據(jù) response.content 保存 
 # 文本數(shù)據(jù)?data = response.text
 # 解析數(shù)據(jù)?數(shù)據(jù) 加載進美麗的湯
 data_html = BeautifulSoup(文本數(shù)據(jù)data,解析器'html.parser')
 # 獲取數(shù)據(jù) select(css選擇器語法) select_one 
 id #屬性值
 class .屬性值
 標(biāo)簽名?
 包含 >?空格
 其他屬性選擇器?選擇器[屬性名=值]
 結(jié)構(gòu)選擇器?:first-child :last-child :nth-child(2)?
 
 # 獲取標(biāo)簽之間的文本數(shù)據(jù) 標(biāo)簽.text
 # 獲取標(biāo)簽的屬性值?標(biāo)簽.attrs.get(屬性名) 
else:
 響應(yīng)失敗

python操作excel

使用的python中的模塊 import openpyxl 
excel 組成 
 工作簿 一個工作簿中可以有多張工作表 自帶一張工作表 Sheet
 工作表 包含多個單元格?行列確定某個單元格?

selenium的使用

需要一個模塊 import selenium

驅(qū)動瀏覽器打開頁面

相對于requests的優(yōu)點 不管數(shù)據(jù)是否是靜態(tài)的還是動態(tài) 只要頁面上有 就能獲取

打開瀏覽器

from selenium import webdriver
 
# 瀏覽器的初始化
browser = webdriver.Chrome()
# 發(fā)送請求
browser.get('https://www.baidu.com/')
 
# 打印頁面的標(biāo)題
print(browser.title)
 
# 退出模擬瀏覽器
browser.quit() # 一定要退出!不退出會有殘留進程

無界面模式

from selenium import webdriver
 
# 1. 實例化配置對象
chrome_options = webdriver.ChromeOptions()
# 2. 配置對象添加開啟無界面命令
chrome_options.add_argument('--headless')
# 3. 配置對象添加禁用gpu命令
chrome_options.add_argument('--disable-gpu')
# 4. 實例化帶有配置對象的browser 對象
browser = webdriver.Chrome(chrome_options=chrome_options)
 
browser.get('https://www.baidu.com/')
 
# 查看請求的數(shù)據(jù)
print(browser.page_source) # 查看渲染后的數(shù)據(jù),就可以Xpath進行解析獲取數(shù)據(jù)了
print(browser.get_cookies()) # 查看請求頁面后的cookies值
print(browser.current_url) # 查看請求url
 
# 關(guān)閉頁面
browser.close()
# 關(guān)閉瀏覽器
browser.quit()

元素定位

from selenium import webdriver
from selenium.webdriver.common.by import By
 
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)
url = 'https://www.xxx.com/'
browser.get(url)
html_str = browser.page_source


from selenium.webdriver.common.by import By
 
# 獲取第一個元素
browser.find_element(by=By.ID, value="list-1")
# 獲取多個元素
browser.find_elements(by=By.ID, value="list-1")

元素操作

ret = browser.find_element_by_class_name('element').text
print(ret[0].text)

ret = browser.find_element_by_tag_name('a').get_attribute('href')
print(ret[0].get_attribute('href'))

前進后退

# 前進
browser.forward()
 
# 后退 
browser.back()

執(zhí)行js

from selenium import webdriver
 
browser = webdriver.Chrome()
url = 'https://www.baidu.com/'
browser.get(url)
 
js = 'window.scrol1To(O,document.body.scrollHeight)' # js語句
browser.execute_script(js) # 執(zhí)行js的方法
 
browser.quit()

頁面等待

  • 隱式等待
隱式等待針對的是元素定位,隱式等待設(shè)置了一個時間,在一段時間內(nèi)判斷元素是否定位成功,如果完成了,就進行下一步。在設(shè)置的時間內(nèi)沒有定位成功,則會報超時加載


from selenium import webdriver
 
driver = webdriver.Chrome()
driver.implicitly_wait(10) # 隱式等待10秒
driver.get('https://www.baidu.com/')
myDynamicElement = driver.find_element_by_id("input")
  • 顯示等待
顯式確定等待指定某個元素,然后設(shè)置最長等待時間。如果在這個時間還沒有找到元素,那么便會拋出異常了。


from selenium import webdriver
from selenium.webdriver.common.by import By
# WebDriverWait 庫,負(fù)責(zé)循環(huán)等待
from selenium.webdriver.support.ui import WebDriverWait
# expected_conditions 類,負(fù)責(zé)條件出發(fā)
from selenium.webdriver.support import expected_conditions as EC
 
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
try:
?# 頁面一直循環(huán),直到 id="input" 出現(xiàn)
?element = WebDriverWait(driver, 10).until(
???EC.presence_of_element_located((By.ID, "input"))
?)
finally:
?driver.quit()

使用代理IP

from selenium import webdriver
import time
 
# 1. 實例化配置對象
options = webdriver.ChromeOptions()
# 2. 配置對象添加使用代理ip的命令
options.add_argument('--proxy-server=http://ip地址') # 代理IP:端口號
# 3. 實例化帶有配置對象的driver對象
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://www.baidu.com")
 
# 獲取頁面內(nèi)容
print(driver.page_source)
 
# 延遲3秒后關(guān)閉當(dāng)前窗口,如果是最后一個窗口則退出
time.sleep(3)
driver.close()

修改請求頭

用于偽裝請求頭

from selenium import webdriver
import time
 
agent = 'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1'
# 1. 實例化配置對象
options = webdriver.ChromeOptions()
# 2. 配置對象修改請求頭
options.add_argument('--user-agent=' + agent)
# 3. 實例化帶有配置對象的driver對象
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://www.baidu.com")
 
# 獲取頁面內(nèi)容
print(driver.page_source)
 
# 延遲3秒后關(guān)閉當(dāng)前窗口,如果是最后一個窗口則退出
time.sleep(3)
driver.close()


千鋒教育python數(shù)據(jù)分析教程200集,Python數(shù)據(jù)分析師入門必備視頻的評論 (共 條)

分享到微博請遵守國家法律
铜山县| 高安市| 庆元县| 措勤县| 富川| 固镇县| 黄大仙区| 榆中县| 永善县| 罗源县| 迭部县| 宁国市| 玉环县| 平罗县| 专栏| 公安县| 尼玛县| 玛多县| 乌拉特后旗| 台湾省| 庆云县| 彭泽县| 黑龙江省| 筠连县| 江安县| 平远县| 内黄县| 宣武区| 南川市| 喀喇沁旗| 宁安市| 九龙县| 唐河县| 上犹县| 铜山县| 张掖市| 虎林市| 锡林浩特市| 徐水县| 岐山县| 乌拉特中旗|