如何利用Python来爬取网页视频呢?

如何利用Python来爬取网页视频呢?,第1张

前几天写了个爬虫,用path、re、BeautifulSoup爬取的B站python视频,但是这个爬虫有有个缺陷,没能获取视频的信息,如果你去尝试你会发现它根本就不在返回的结果里面。今天就用分析Ajax的方法获取到。

分析页面

点一下搜索,这个url才会出现,或者点一下下一页

然后就构造这个请求就可以了。需要注意的是最后一个参数不能添加。

代码实战

代码里面有些解释已经很清楚了,在这里再次复习一下

resub()

这个函数传入五个参数,前三个是必须传入的pattern,、repl、string

第一个是表示的是正则表达式中模式字符串

第二个是要被替换的字符串

第三个是文本字符串剩下两个可选参数,一个是count一个是flag。

时间戳转换成标准格式的时间第一种方法

第二种方法

综上就是这次的全部内容,多加练习继续加油!

  使用python Django做网页的步骤

  1 、创建一个django项目

  使用django-adminpy startproject MyDjangoSite 参考这里

  2、建立视图

  from djangohttp import HttpResponsedef hello(request): return

HttpResponse("我的第一个简单的python django项目。")

  3、修改urlspy

  我们为urlpatterns加上一行: (r‘^hello/$', hello),

这行被称作URLpattern,它是一个Python的元组。元组中第一个元素是模式匹配字符串(正则表达式);第二个元素是那个模式将使用的视图函数。

  正则表达式字符串的开头字母“r”。

它告诉Python这是个原始字符串,不需要处理里面的反斜杠(转义字符)。一般在使用正则前加入"r"是一个好的习惯!

  4、运行python managepy runserver

  http://127001:8000/hello

mport urllibrequest

import re

def getHtml(url):

page = urllibrequesturlopen(url)

html = pageread()

html = htmldecode('GBK')

return html

def getMeg(html):

reg = recompile(r'')

meglist = refindall(reg,html)

for meg in meglist:

with open('outtxt',mode='a',encoding='utf-8') as file:

filewrite('%s\n' % meg)

if __name__ == "__main__":

html = getHtml(url)

getMeg(html)

个人觉得:

新手学习python爬取网页先用下面4个库就够了:(第4个是实在搞不定用的,当然某些特殊情况它也可能搞不定)

1 打开网页,下载文件:urllib

2 解析网页:BeautifulSoup,熟悉JQuery的可以用Pyquery

3 使用Requests来提交各种类型的请求,支持重定向,cookies等。

4 使用Selenium,模拟浏览器提交类似用户的操作,处理js动态产生的网页

这几个库有它们各自的功能。配合起来就可以完成爬取各种网页并分析的功能。具体的用法可以查他们的官网手册(上面有链接)。

做事情是要有驱动的,如果你没什么特别想抓取的,新手学习可以从这个闯关网站开始

,目前更新到第五关,闯过前四关,你应该就掌握了这些库的基本操作。

实在闯不过去,再到这里看题解吧,第四关会用到并行编程。(串行编程完成第四关会很费时间哦),第四,五关只出了题,还没发布题解。。。

学完这些基础,再去学习scrapy这个强大的爬虫框架会更顺些。这里有它的中文介绍。

这是我在知乎的回答,直接转过来有些链接没有生效,可以到这里看原版,http://wwwzhihucom/question/20899988/answer/59131676

python编写一个脚本的具体操作:

1、首先,打开python并创建一个新的PY文件。

2、其次,import os,因为涉及系统文件的路径,因此首先在此处导入系统模块。

3、随后,可以双击打开HTML文件,然后就可以看到书写的网页,如下图所示。

4、最后,添加htmlclose(),需添加此行代码以关闭,否则将占用大量内存,如下图所示。这样,用python简单的制作一个网页的所有操作就完成了。完成。

chrome出了headless浏览器,无头就是没有界面,据说出了这东西后phantomjs都宣布停止更新了,不过phantomjs还是能用的,也是headless浏览器。要不直接上selenium+chrome也行

使用Python访问网页主要有三种方式: urllib, urllib2, httplib

urllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session

1 最简单的页面访问

res=urllib2urlopen(url)

print resread()

2 加上要get或post的数据

data={"name":"hank", "passwd":"hjz"}

urllib2urlopen(url, urlliburlencode(data))

3 加上http头

header={"User-Agent": "Mozilla-Firefox50"}

urllib2urlopen(url, urlliburlencode(data), header)使用opener和handler

opener = urllib2build_opener(handler)

urllib2install_opener(opener)

4 加上session

cj = cookielibCookieJar()

cjhandler=urllib2HTTPCookieProcessor(cj)

opener = urllib2build_opener(cjhandler)

urllib2install_opener(opener)

5 加上Basic认证

password_mgr = urllib2HTTPPasswordMgrWithDefaultRealm()

top_level_url = "http://www163com/"

password_mgradd_password(None, top_level_url, username, password)

handler = urllib2HTTPBasicAuthHandler(password_mgr)

opener = urllib2build_opener(handler)

urllib2install_opener(opener)

6 使用代理

proxy_support = urllib2ProxyHandler({"http":"http://1234:3128/"})

opener = urllib2build_opener(proxy_support)

urllib2install_opener(opener)

7 设置超时

socketsetdefaulttimeout(5)

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/jiehun/2204098.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-25
下一篇2023-07-25

发表评论

登录后才能评论

评论列表(0条)

    保存