python爬虫初体验
in 爬虫 with 0 comment

python爬虫初体验

in 爬虫 with 0 comment

前言

在V站上看到一个帖子:录制的react免费视频教程,
emmm然后点进去看了一下,发现视频可以提供下载,自己手动一个一个下载又感觉麻烦,所以想到了用爬虫的方式将视频下载下来。

正文

import requests
from bs4 import BeautifulSoup
import os
from selenium import webdriver

def request(url):
    headers= {'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1"
                        " Safari/537.1"}##浏览器请求头(大部分网站没有这个请求头会报错、请务必加上哦)
    content = requests.get(url,headers=headers)
    return content
all_url = input("请输入要爬的网址:")
start_html = request(all_url)
Soup = BeautifulSoup(start_html.content,'lxml')
p_list = Soup.find('div',class_="home-video").find_all("p",class_="title")
for p in p_list:
    a = p.find('a')
    title = a.get_text() #取出a标签的文本
    href = a['href'] #取出a标签的href 属性
    driver = webdriver.Chrome()
    driver.get("https://www.rails365.net/"+href)
    driver_Soup = BeautifulSoup(driver.page_source,'lxml')
    a = driver_Soup.find('div',class_="video-block mb20").find('video')
    video_url = a['src']
    video = request(video_url)
    print("正在下载"+title)
    f = open(title+'.mp4','ab')
    f.write(video.content)
    f.close()
    print(title+"下载完毕")

总结

感觉爬虫入门也就那么回事儿,用request,BeautifulSoup就可以很简单的爬取自己想要的东西了,当然没有思考什么反爬虫的东西。当时自己在爬取这个网站视频的时候,发现这个网站是通过JS渲染过的,所以直接爬取的话就不能获取我们想要的数据。这个时候我使用了selenium这个库,通过模拟浏览器的方式将网站渲染出来,就可以爬取我们想要的东西了。据说还有一个叫做PhantomJS的东西,这样就不需要模拟打开浏览器了,但是还不知道怎么使用。就先放在一旁了。

Responses