selenium爬虫:爬取影片名称与连结

##事先准备
首先我们先引入这四个模组,同时这一篇文章也会简单地带大家认识这几个模组。

from selenium import webdriver
import pyautogui
import openpyxl
import time

使用selenium之前我们必须要先下载chromedriver,读者可以到其官网上下载最新版本。 driver = webdriver.Chrome(PATH)这是设定我们待会所使用的浏览器是Chrome并且传入chromedriver。之後使用get函数就可以到我们想要到的网页。

PATH = "C:/Users/user/Desktop/chromedriver_win32/chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://www.youtube.com/channel/UC8zkK0-g8S8Z_t8ZjUmpAlA/videos")

之後我们开启一个Excel的档案,并且待会档案会读写在工作表1。
openpyxl.load_workbook(filename=)可以开启Excel档案,sheet=workbook['工作表1']指定我们等一下要操作档案的工作表。

path1='77老大.xlsx'
workbook=openpyxl.load_workbook(filename=path1)
sheet=workbook['工作表1']

##一些简易的pyautogui操作
进入该网页後,使用模组pyautogui点击视窗的最大化、滚轮,之後按键盘的PgDn让页面往下滑。pyautogui.locateCenterOnScreen()是一个很好用的函数,它可以侦测你所传入的图片(这边传入的是「视窗最大化」「视窗滚轮」的截图),进行辨识,回传找到的位置。再利用pyautogui.click()来点击。
(这个部分其实也可以用selenium内建的程序来编写,只不过用pyautogui更为直观)

pyautogui.click((pyautogui.locateCenterOnScreen('最大化1.png', grayscale=True)))
time.sleep(2)
pyautogui.click((pyautogui.locateCenterOnScreen('滚轮.png', grayscale=True)))
time.sleep(1)
for i in range(30): 
    pyautogui.press('pgdn')
    time.sleep(0.5)

##爬取资料~!
Selenium最常所使用的函数就是find_element相关函数,我们可以使用网页标签的id、class等等属性进行爬取(不过稍有经验的工程师通常使用xpath、css selector,这里先不提)。具体的操作方式在我们所处的网页上,按下键盘的f12,之後网页会跳出一个「开发者工具」,在element 难为可以看到网页的html,里面有各种标签。 find_elements_by_id("video-title")就是查询所有id="video-title"的标签。

titles=driver.find_elements_by_id("video-title")
number=1
for title in titles:
    sheet.cell(row=number,column=1).value=title.get_attribute('text')
    sheet.cell(row=number,column=5).value=title.get_attribute('href')
    number+=1
print(number)
workbook.save(r'77老大.xlsx')

今天只是一个非常简略的介绍,之後我们还会再继续使用这些函数,到时再进行详细的介绍。


<<:  离职倒数14天:2020年学到最多的两件事,解答了我人生最大的困惑

>>:  DAY 2 - 灯笼小怪

Day04 永丰金API 基础流程 -- HashID

一样先上图 今天我们要处理的是Sign,在文件中或在看到产出规则,可以看到Hash为永丰金提供, N...

Day 21. 条件渲染 – v-if、v-show

今天来讲条件渲染(Conditional Rendering),也就是可以依照条件变化改变渲染元素的...

D-Day -- 我覆盖魔法牌 结束这回合!

来检讨自己啦! 文章太过冗长,想说得太多,没有好好整理,没有清楚表达重点。 应该多说写技术性的内容...

Day5给你一个漂漂的导览列大家说好不好!

延续昨天,今天来完成一个导览列吧!! 首先先在components创一个navbar.vue 像昨天...

Web应用扫描工具-Arachni小蜘蛛(上)

arachni是以ruby语言编写 针对web应用的安全漏洞扫描工具 利用各个模组载入进行测试 使用...