① java网络爬虫爬取web视频资源,并下载怎么做
/*这是个下载图片的爬虫,给你参考一下*/
import java.io.File;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DownMM {
public static void main(String[] args) throws Exception {
//out为输出的路径,注意要以\\结尾
String out = "D:\\JSP\\pic\\java\\";
try{
File f = new File(out);
if(! f.exists()) {
f.mkdirs();
}
}catch(Exception e){
System.out.println("no");
}
String url = "http://www.mzitu.com/share/comment-page-";
Pattern reg = Pattern.compile("<img src=\"(.*?)\"");
for(int j=0, i=1; i<=10; i++){
URL uu = new URL(url+i);
URLConnection conn = uu.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
Scanner sc = new Scanner(conn.getInputStream());
Matcher m = reg.matcher(sc.useDelimiter("\\A").next());
while(m.find()){
Files.(new URL(m.group(1)).openStream(), Paths.get(out + UUID.randomUUID() + ".jpg"));
System.out.println("已下载:"+j++);
}
}
}
}
② python爬虫看电影会有什么影响
闲着在家想看电影,但是猛地不知道要看啥电影,脑子想半天也想不出来一个好电影名字!干脆直接在豆瓣电影上获取最近热门的电影,然后一个一个挨着看打发时间!
获取豆瓣电影信息也是学爬虫的一个入门例子,不知道为啥好多人学爬虫都拿豆瓣电影来练手,一个应该是爬取比较简单,另一个应该是这个平台反爬措施比较low,接下来让我们来看看怎么去实现获取豆瓣电影前200个热门电影信息!
1.请求数据
第一步先打开豆瓣电影网页,分析请求看怎样才能请求到数据。
刷新豆瓣电影网页,从浏览器自带的开发工具network中XHR可以看到各种请求,其中标黄的search_subject?type_movie这个请求就是请求电影信息,下面的type_tv就是请求电视剧信息的。从右边标黄的request url中看到是请求的链接,但参数信息都被编码,用urllib.parse.unquote()方法来进行解码:
解码后的请求连接如图所示,猜想page_limt为每次请求到的数据量,page_start为从第几页开始请求,将这个链接在浏览器中打开来验证一下猜想。
看到返回的是一个json字符串,里面包含50条电影信息,其中有名字,评分,链接等,将page_start = 0 变为1,就请求到下一个50条信息。根据链接的这个规律,可以对page_start 不断赋值,从而实现多条信息的获取!(公众号 ly戏说编程)
第二步构造请求头,即看看浏览器通过这个链接向服务器发送了什么请求参数才拿到这些json数据,打开浏览器开发者工具。
按照图中1到4步可以看到这个请求的request headers,将请求头里面的信息全部拿出来,构造为爬虫的请求头。
坑:请求头构造的时候Accept-Encoding要将br去掉。原因:Accept-Encoding用来声明浏览器支持的编码类型,一般有gzip,deflate,br 等等。但在python3的requests包中:
response.content 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩 类型:bytes
reponse.text 字符串方式的响应体,会自动根据响应头部的字符编码进行解码。类型:str
但偏偏不支持br的解码,如果加上br可能造成你请求回来的是乱码!所以要去掉br!
这样通过模拟浏览器请求数据,就可以得到服务器返回的json字符串,再解析json字符串得到每一个电影的详情链接。
2.提取信息
在得到每一个电影的链接后,依次访问每一个电影的链接,然后根据关键信息所在标签用xpath进行提取。这里只对电影名字、年份、导演、类型、评分进行提取。
例如提取1917,在网页右击“1917”,然后选择检查,在Elements中1917所在位置右击,选择Copy,然后Copy XPath即可拿到1917的Xpath路径,其它信息的提取操作步骤一样。
但是不同电影网页里面相同类型的信息所在的XPath路径可能不同,这就需要找到他们的相同处,提取相同的XPath路径,从而进行大批量提取。
比如电影类型,用直接 xpath的方法就不好使,不同电影网页里面电影类型所处的标签位置不同,用 xpath拷贝出来的路径有差异,这就需要根据所在标签的property属性来获取。主要代码如下:
对每一网页链接里面的信息进行提取,这里每提取一个就停1s,为的是避免平台检测到异常访问,这样就拿到每一个电影的信息,然后再将这信息保存到excel中,效果如图所示
前几名都是奥斯卡得奖电影有木有!感兴趣的小伙伴快来试试!话不多说,挨着去看电影咯!去哪看?去公众号 ly戏说编程 首页vip影院看,里面还有各种学习资源免费分享!
③ 怎样用python获取电影
实验室这段时间要采集电影的信息,给出了一个很大的数据集,数据集包含了4000多个电影名,需要我写一个爬虫来爬取电影名对应的电影信息。
其实在实际运作中,根本就不需要爬虫,只需要一点简单的Python基础就可以了。
前置需求:
Python3语法基础
HTTP网络基础
===================================
第一步,确定API的提供方。IMDb是最大的电影数据库,与其相对的,有一个OMDb的网站提供了API供使用。这家网站的API非常友好,易于使用。
第二步,确定网址的格式。
第三步,了解基本的Requests库的使用方法。
④ 第5课 实例二:爬取电影
1. 选择一个网站: https://www.douban.com
2. 在进行爬取之前,我们先去看看它的robots协议。
协议网址: https://www.douban.com /robots.txt
3. 进入首页 https://movie.douban.com/top250?start=0&filter= ,打开检查工具,在Elements里查看这个网页,是什么结构。
点击开发者工具左上角的小箭头,选中“肖申克的救赎”,这样就定位了电影名的所在位置,审查元素中显示<span class="title">:<span>标签内的文本,class属性;推荐语和评分也是如此,<span class='inq'>,<span class='rating_num'>;序号:<em class>,<em>标签内的文本,class属性;推荐语<span class='inq'>;链接是<a>标签里href的值。最后,它们最小共同父级标签,是<li>。
4. 我们再换个电影验证下找的规律是否正确。
5. check后,我们再看一共10页,每页的url有什么相关呢?
第1页: https://movie.douban.com/top250?start=0&filter=
第3页: https://movie.douban.com/top250?start=50&filter=
第7页: https://movie.douban.com/top250?start=150&filter=
发现只有start后面是有变大枝化,规律就是第N页,start=(N-1)*25
6. 基于以上分析,我们有两种写爬虫的思路。
思路一:先爬取最小共同父级标签 <li>,然后针对每一个父谈慎级标签,提取里面的序号/电影名/评分/推荐语/链接。
思路二:分别提取所有的序号/所有的电影名/所有的评分/所有的推荐语/所有的链接,然后再按顺序一一对应起来。
import requests# 引用requests库
from bs4 import BeautifulSoup# 引用BeautifulSoup库
res_films=requests.get('https://movie.douban.com/')# 获取数据
bs_films=BeautifulSoup(res_films.text,'html.parser')# 解析数据
fil_title=bs_films.find_all(class_='title')
fil_num=bs_films.find_all(class_="")
list_all=[]# 创建一个空列表,滚侍敏用于存储信息
for x in range(len(fil_num)):
list_films=[fil_num[x].text[18:-14],fil_title[x].find('a')['href']]
list_all.append(list_films)
print(list_all)
⑤ 如何爬取别人网站的视频资源放到自己的网站
通过视频的URL,使用KeepVid能从YouTube获取到视频文件,而且提供多种格式的视频文件形式下雹迹载。
目前支持的视频罩谈网站有(其中就有我朝的tudou):
youtube.com(源闷并youtu.be)
megavideo.com
dailymotion.com
twitvid.com
tudou.com
videoweed.es
stagevu.com
vbox7.com
zshare.net
v.9you.com
altervideo.net
clip.vn
divxstage.eu
Java applet做的,研究研究对你应该有帮助。
KeepVidDownloader.java
⑥ Python爬虫实战,Python多线程抓取5千多部最新电影下载链接
利用Python多线程爬了5000多部最新电影下载链接,废话不多说~
让我们愉快地开始吧~
Python版本: 3.6.4
相关模块:
requests模块;
re模块;
csv模块;
以及一些Python自带的模块。
安装Python并添加到环境变量,pip安装需要的相关模块即可。
拿到链接之后,接下来就是继续访问这些链接,然后拿到电影的下载链接
但是这里还是有很多的小细节,例如我们需要拿到电影的总页数,其次这么多的页面,一个线程不知道要跑到什么时候,所以我们首先先拿到总页码,然后用多线程来进行任务的分配
我们首先先拿到总页码,然后用多线程来进行任务的分配
总页数其实我们用re正则来获取
爬取的内容存取到csv,也可以写个函数来存取
开启4个进程来下载链接
您学废了吗?最后祝大家天天进步!!学习Python最重要的就是心态。我们在学习过程中必然会遇到很多难题,可能自己想破脑袋都无法解决。这都是正常的,千万别急着否定自己,怀疑自己。如果大家在刚开始学习中遇到困难,想找一个python学习交流环境,可以加入我们,领取学习资料,一起讨论,会节约很多时间,减少很多遇到的难题。
⑦ 如何用爬虫爬取网页上的数据
用爬虫框架Scrapy, 三步
定义item类
开发spider类
开发pipeline
如果你想要蠢差更透的信息,你可以参考正档禅《疯举尘狂python讲义》
⑧ Python爬虫实战(1)requests爬取豆瓣电影TOP250
爬取时间:2020/11/25
系统环境:Windows 10
所用工具:Jupyter NotebookPython 3.0
涉及的库:requestslxmlpandasmatplotlib
umpy
蛋肥想法: 先将电影名称、原名、评分、评价人数、分类信息从网站上爬取下来。
蛋肥想法: print数据列表后发现电影原名、分类信息等存在不需要的字符,需预先处理;同时因为后续想做一个豆瓣电影TOP250的维度分布图,而同一电影存在多个发行国家、类型(如“法国 美国 / 剧情 动作 犯罪”),为了简(偷)便(懒),这里均取第一个作为记入的数据;最后将数据保存为xlsx。
蛋肥想法: 蛋肥想知道在豆瓣电影TOP250中年份、国家、类型的维度数据,为了练手,使用刚才保存成xlsx的数据,并分别画成雷达图、柱形图、扇形图。