首先老办法我们打开电影天国的网站,右击检讨查看下网站的源码
经由剖析后暗暗窃喜,跟之前一个套路,直接requests要求,xpth解析,数据不就手到擒来,开干。
import requestsurl="https://www.dygod.net/html/gndy/china/"headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","cookie": "guardret=UAQF; guardret=C1c=; Hm_lvt_93b4a7c2e07353c3853ac17a86d4c8a4=1710422041; Hm_lvt_0113b461c3b631f7a568630be1134d3d=1710422041; Hm_lvt_8e745928b4c636da693d2c43470f5413=1710422041; guard=b45b4fbfCWp691; Hm_lpvt_93b4a7c2e07353c3853ac17a86d4c8a4=1710508766; Hm_lpvt_0113b461c3b631f7a568630be1134d3d=1710508766; Hm_lpvt_8e745928b4c636da693d2c43470f5413=1710508766"}resp=requests.get(url,headers=headers) print(resp.text)
这次连user-agent,cookie 都加上该当没问题了吧,可是一运行傻眼了。

网站直接返回了一个javascript脚本,网站做了反爬,数据获取不到了......
既然不返回数据给我们,那我们换个思路,利用selenium所见即所的功能,直接打开网站获取干系的数据就好了。
我们先确认下Chrome的版本:在 chrome地址栏中输入:chrome://version/
可查看chrome版本,根据对应的版本下载驱动
https://chromedriver.storage.googleapis.com/index.html
安装selenium
pip install selenium
利用find_elements方法获取对应的元素值。
find_elements(By.XPATH,'//[@id="header"]/div/div[3]/div[4]/div[2]/div[2]/div[2]/ul/table/tbody/tr[2]/td[2]/b/a')
运行结果如下:
我们利用相同的方法,循环对获取的电影详情页面进行下载链接的获取。
以下是利用selenium获取电影的代码:
from selenium import webdriverfrom selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()chrome_options = webdriver.ChromeOptions()# 把许可提示这个弹窗关闭prefs = {"profile.default_content_setting_values.notifications": 2}chrome_options.add_experimental_option("prefs", prefs)driver = webdriver.Chrome(options=chrome_options)url = 'https://www.dygod.net/html/gndy/china/'driver.get(url)# 返回所有的元素 find_elementscontents=driver.find_elements(By.XPATH,'//[@id="header"]/div/div[3]/div[4]/div[2]/div[2]/div[2]/ul/table/tbody/tr[2]/td[2]/b/a')#print(contents)for i in contents: print(i.text, i.get_attribute('href'))
获取下载链接的代码同学们可以自己考试测验着写下,把所有的链接都保存到一个txt文件,利用迅雷的批量下载功能进行下载。只要你的硬盘足够大,天下都能装的下!
好了,我们下期见。