Python爬虫实战,Python多线程抓取5千多部最新电影下载链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫实战,Python多线程抓取5千多部最新电影下载链接相关的知识,希望对你有一定的参考价值。

参考技术A


利用Python多线程爬了5000多部最新电影下载链接,废话不多说~

让我们愉快地开始吧~

Python版本: 3.6.4

相关模块:

requests模块;

re模块;

csv模块;

以及一些Python自带的模块。

安装Python并添加到环境变量,pip安装需要的相关模块即可。

拿到链接之后,接下来就是继续访问这些链接,然后拿到电影的下载链接

但是这里还是有很多的小细节,例如我们需要拿到电影的总页数,其次这么多的页面,一个线程不知道要跑到什么时候,所以我们首先先拿到总页码,然后用多线程来进行任务的分配

我们首先先拿到总页码,然后用多线程来进行任务的分配

总页数其实我们用re正则来获取

爬取的内容存取到csv,也可以写个函数来存取

开启4个进程来下载链接

您学废了吗?最后祝大家天天进步!!学习Python最重要的就是心态。我们在学习过程中必然会遇到很多难题,可能自己想破脑袋都无法解决。这都是正常的,千万别急着否定自己,怀疑自己。如果大家在刚开始学习中遇到困难,想找一个python学习交流环境,可以加入我们,领取学习资料,一起讨论,会节约很多时间,减少很多遇到的难题。

Python爬虫编程思想(143):项目实战:多线程和多进程爬虫

         首先来学习使用多线程实现爬虫,这个案例抓取了豆瓣音乐Top250排行榜,只是本例去除去了将提取的结果保存为文件的功能,仅仅将提取的结果输出到Console上。本例使用了4个线程同时抓取不同的页面,并进行分析。

        本例创建了一个存储URL的池,就是一个列表。获取这个列表中URL的工作由get_url函数完成,该函数通过线程锁进行了同步。由于在获取URL后,会将这个URL从列表中删除,所以在多线程环境下必须对这个列表进行同步,否则可能会产生脏数据,也就是说,可能会造成多个线程获取了同一个URL。

import threading
import datetime
import requests
from bs4 import BeautifulSoup
import re
import time
# 记录开始时间
starttime = datetime.datetime.now()
# 创建线程锁
lock = threading.Lock()
# 从URL列表中获取URL,这是一个同步函数
def get_url():
    global urls
    # 获取URL之前,加锁  
    lock.acquire()
    if len(urls) == 0:
        lock.release()
        return ""
    else:
        url = urls[0]
        # 提取一个URL后,将这个URL从列表中删除
        del urls[0]
    
    # 完成工作后,释放锁
    lock.release()
    return url
headers = 
    \'User-Agent\':\'Mozilla/5.0 (Macintosh; Intel M

以上是关于Python爬虫实战,Python多线程抓取5千多部最新电影下载链接的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫编程思想(143):项目实战:多线程和多进程爬虫

Python之多线程爬虫抓取网页图片

学爬虫的动力是啥?那肯定就是爬美女图片了。6千多图片看到爽。

[Python爬虫] 之十:Selenium +phantomjs抓取活动行中会议活动(多线程抓取)

使用Python编写多线程爬虫抓取百度贴吧邮箱与手机号

Python爬虫编程思想:实战案例:抓取博客文章列表