Python爬取电影天堂资源

步骤一:python的下载

python爬虫,首先需要本地电脑上安装有python

首先,进入到python官网,你可以直接输入python主页,也可以从百度搜索框进入到python的主页

然后在主页上面可以看见Downloads字样,点击

跳转出python下载界面,选择一个版本进行下载,我这里下载的是python3.6。

步骤二:爬虫准备

爬虫首先需要做的事情就是要确定好你想要爬取数据的对象,这里我将以电影天堂里面的电影为例进行讲解。

首先,是打开电影天堂主页界面,然后把鼠标移动到主页左边空白位置,点击鼠标右键,然后点击查看源,就可以看到网页的源代码,例如<a href="/html/gndy/dyzz/20180620/57001.html" class="ulink">2018年科幻动作《头号玩家》HB中英双字幕</a>

Python爬取电影天堂资源

步骤三:开始爬虫

 

爬虫主要分为两个部分,第一个是网页界面的获取,第二个是网页界面的解析;爬虫的原理是利用代码模拟浏览器访问网站,与浏览器不同的是,爬虫获取到的是网页的源代码,没有了浏览器的翻译效果。

首先,我们进行页面获取,python爬虫的话很多模块包提供给开发者直接抓取网页,urllib,urllib2,requests(urllib3)等等,这里我们使用requests进行网站页面的获取;首先导入requests模块包import requests如果没有下载,可以在命令控制行使用pip install requests下载。

导入模块包之后,然后调用requests中的方法get链接网站,代码如下a_ur1 = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_'+str(n)+'.html'

html_1 = requests.get(a_ur1)。

其中要注意html_1的编码格式,

html_1.encoding = 'gb2312'

获取到页面的源代码之后,然后接下来的工作就是将自己想要的数据从html界面源代码中解析出来,解析界面的模块包有很多,原始的re,好用的BeautifulSoup,以及高大上的lxml等等,这里我就简单的用re介绍介绍,首先导入re模块包:import re

然后进行利用re进行搜索

detil_list = re.findall('<a href="(.*?)" class="ulink">',html_1.text)

这里我有使用正则表达式,看不懂的同学需去补充点正则表达式方面的知识。

这样就可以爬取到我们需要的第一个网页源代码(可以用for循环爬取更多的网站)

拿到多个网页源代码之后我们可以拿个列表把它存起来

detil_list = re.findall('<a href="(.*?)" class="ulink">',html_1.text)

然后利用源代码进入网页

 Python爬取电影天堂资源

    for m in detil_list:

        b_ur1 = 'http://www.ygdy8.net'+m

        html_2 = requests.get(b_ur1)

        html_2.encoding = 'gb2312'

然后利用正则表达式获取我们想要的电影连接

ftp = re.findall('<a href="(.*?)">.*?</a></td>',html_2.text)

最后,就可以输出爬到的电影连接了

Python爬取电影天堂资源

源代码

import requests,re

for n in range(1,3):

    a_ur1 = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_'+str(n)+'.html'

    html_1 = requests.get(a_ur1)

    html_1.encoding = 'gb2312'

    detil_list = re.findall('< a href="(.*?)" class="ulink">',html_1.text)

    for m in detil_list:

        b_ur1 = 'http://www.ygdy8.net'+m

        html_2 = requests.get(b_ur1)

        html_2.encoding = 'gb2312'

        ftp = re.findall('< a href="(.*?)">.*?</ a></td>',html_2.text)

        print(ftp)