python爬虫实战(一)→requests

现在说起爬虫,大部分人的第一反应就是python爬虫。
那么今天就来说说python爬虫

Requests是使用Apache2 licensed 许可证的HTTP库,用python编写较简洁。
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。

在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。requests会自动实现持久连接keep-alive,较为友好。

① 导入模块

import requests

② 发送请求

url = www.baidu.com
response = requests.get(url=url)

③设置请求头
我们在使用python爬虫过程中,大多数需要伪装成浏览器发送请求

	url= 'xxxxxxxxxxxxxxxxxxxxxxx'
	header = {
		'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36',
		'Cookie': 'xxxxxxxxxxxxxxxxxxxx'
	}

④获取响应内容

response = requests.get(url=url,headers=header)
这里,我们可以使用 .content 或者 .text 来获取响应内容

⑤编码解码

我们可以使用 encoding   decode 等方式
也可以使用 json的方式
import json
json.loads(response)

最后我们只要在返回内容里面找到自己想要的数据即可

最够附上实战内容:

    import requests
	import json
	import time

class spider_():
    def __init__(self):
        #影视
        # self.url = 'https://sv.baidu.com/videoui/api/videorec?tab=yingshi&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354614665'
        #音乐
        # self.url = 'https://sv.baidu.com/videoui/api/videorec?tab=yinyue&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354123512'
        #搞笑
        self.url = 'https://sv.baidu.com/videoui/api/videorec?tab=gaoxiao&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354553450'
        #娱乐
        # self.url = 'https://sv.baidu.com/videoui/api/videorec?tab=yule&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354718578'
        #动漫
        # self.url = 'https://sv.baidu.com/videoui/api/videorec?tab=dongman&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354765572'
        #综艺
        # self.url = ' https://sv.baidu.com/videoui/api/videorec?tab=zongyi&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354801895'
        #军事
        # self.url = ' https://sv.baidu.com/videoui/api/videorec?tab=junshi&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354839248'
        #科技
        # self.url = ' https://sv.baidu.com/videoui/api/videorec?tab=keji&act=pcFeed&pd=pc&num=20&shuaxin_id=1589354870549'
        self.header = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
        'tab':'yingshi',
        'act':'pcFeed',
        'pd':'pc',
        'shuaxin_id':'1589334676944',
        'num':'20',
        'cookie':'PSTM=1564311462; BIDUPSID=9478F7985C38E78B92F7AF6BF89EB9D4; MCITY=-%3A; BAIDUID=B22141A6F325C4F908B57B4BFBF91AA1:FG=1; BDUSS=GxoZW9yNkNHNC14V3pPeU5SMjUyTkQxWE5qMXU4b0FCZFduTEJhSXB2Z2xDcmxlRVFBQUFBJCQAAAAAAAAAAAEAAADj43o4YWlyZWFkMTMxNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACV9kV4lfZFeN; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; yjs_js_security_passport=71c6112c4a650adf0cbf830b896a17f788cb3776_1589189848_js; cflag=13%3A3; H_PS_PSSID=31358_1420_31325_21126_31253_31463_31228_30823_31163; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; delPer=0; PSINO=2; Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5=1589246280; COMMON_LID=164cc820a7c5e83078effb0043f75ebc; PC_TAB_LOG=haokan_website_page; Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5=1589254822; reptileData=%7B%22data%22%3A%2262e08890e27c44ea563adb1238af2cbb446a5e37376e760d65628066c4605508cbaf1d69bda4c7c207ef6350b3e4ab57ff80e934d947be2a867535ce7e70651e15fde67845472caeadbffee6b481e5e4165a36903f534ce8dfc4392dc2bbf72ab345d1cec944c40ecdf8425250efe5b080014a3d26db3fb6e842594b8de5dbcc882e620ae659aaa3585fecb3d2834979%22%2C%22key_id%22%3A%2230%22%2C%22sign%22%3A%220a4cd7af%22%7D'
    }

def down_videos(self):
    #防止被发现 每爬取20条 等待3秒
    time.sleep(3)
    self.response = requests.get(url=self.url, headers=self.header).content
    self.response = json.loads( self.response)
    self.response_ =  self.response['data']['response']['videos']
    print(self.response_)
    for item in range(1):
        for i in self.response_:
            filename = i['title'] + '.mp4'
            with open(filename, "wb") as f:
                f.write(requests.get(i['play_url']).content)
                print(filename, '下载成功')

if name == ‘main’:
spider_().down_videos()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
登录后台:/admin 管理员及密码都为:admin 2008.8.15 1.修正采集数据时图片出错 2.修改相关动漫的图片 3.修下相关链接的错误 4.增加生成SiteMap地图功能 2008.7.23 1.修正后台不能删除文件错误 2.修改动态播放页错位 3.修下相关链接的错误 2008.7.22 1.增加集数链接标签:{videourlnum} 2.增加当前播放集数标签:{maxz_nv} 3.增加总集数(自动获取最多集数的地址库):{maxz_num} 4.增加相关影片集{maxz_related} 5.增加下载模块 6.增加上下集数标签,让用户播放更方便 7.增加顶踩模块,用户体验 8.优化生成HTML的速度 9.增加专题模块(暂没开放) 10.增加无限重分类(暂没开放) 2008.7.3 1.增加三重分类 2.增加可以生成全部集码生成播放HTML页面 3.增加可显示更新到第几集,两组地址库自动显示最新集数 幻影动漫网视频系统CMS1.0正式版标签及安装使用说明文档 核心是马克斯CMS1.0正式稳定版所有兼容原Max原所有的标签的使用 幻影动漫网视频系统主要更新功能如下: 1、增加影片数量统计函数。 2、改进侧边栏及首页列表第一数据是否显示图片的函数。 3、加入AJAX留言插件。 4、加入AJAX评论插件,后台可设置是否开启,后台可分别按IP,留言者,影片名显示留言,并可以批量删除,留言和评论插件后台均有相关参数设置。 5、改进点播列表集数过多则自动限制在一定范围。 6、增加数据批量替换功能。 7、增加分类合并功能。 8、后台增加HTML状态判断,没有生成的自动选中,可直接批量生成。 9、后台增加人气显示,可以分别按人气,ID,时间排序,并显示当前影片评论数量,多来源数据将显示多个来源。 10、增加DZ编辑器,添加影片介绍更得心应手。 11、改进播放器选项为下拉式,并标有详细来源提示,更贴近新手。 12、改进后台登录模块,防止他人用COOKIES欺骗登录后台,为了绝对安全,建议还是改名。 13、重新增加播放前广告。 14、广告管理增加JS转换工具,凡是JS被编辑时下面均显示转换工具。 15、增加后台添加数据时重复数据检测。 16、不选播放器可以直接添加跳转地址,例如填KU6的。 幻影动漫网视频系统CMS1.0-1.1正式版标签及安装使用说明文档 1.分类列表标签 {maxz_loop:itemloopvTypeid} 自由排版区 {/maxz_loop} 参数 vTypeid:为数字类型,值为0时显示所有一级分类,其它值为指定某个一级分类的ID 自由排版区可用的变量 {zt_typename}一级分类名称 {zt_typeid}一级分类ID {zt_en}一级分类英文名称 {zt_typename_2}二级分类名称 {zt_typeid_2}二级分类ID {zt_en_2}二级分类英文名称 示例: {maxz_loop:itemloop0} <li> {/maxz_loop} 2.友情链接列表标签 {maxz_loop:linklooplinktype} 自由排版区 {/maxz_loop} 参数 Linktype:为数字类型,值为0时显示文字链接,值为1时显示图片链接 自由排版区可用的变量 {link_title}站点名称 {link_url}链接网址 {link_pic}链接图片 {link_content}站点简介 示例: {maxz_loop:linkloop1} </li><li> {/maxz_loop} 3.关键字列表标签 {maxz_loop:keyloop} 自由排版区 {/maxz_loop} 参数:暂无 自由排版区可用的变量: {keywords}关键词 示例: {maxz_loop:keyloop} {/maxz_loop} 4.视频调用标签 {maxz_loop:videoloopvOrder,vTypeid,vNum,vLen,vLen1,vLen2,vRecommendID,vTime} 自由排版区 {/maxz_loop} 参数 vOrder:视频列表排序方式,数字类型,值为0按照时间排序,为1按照推荐排序,为2按照点击量排序,为3按照顶过量排序,为2按照踩量排序,为2按照ID排序 vTypeid:视频列表所在的分类ID,数字类型,值为-1表示当前分类,为0表示全部分类,其它为指定某个分类ID vNum:视频列表数量,数字类型,值为0时表示取出所有,其他值表示指定数量 vLen:每条视频的标题字符长度,数字类型 vLen1:每条视频的演员字符长度,数字类型 vLen2:每条信息的内容简介字符长度,数字类型 vRecommendID:视频的推荐种类,数字类型,-2为全部视频,-1为全部推
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值