/********************************************************************************************

 * author:conowen@大钟                                                                                                                          

 * E-mail:conowen@hotmail.com                                                                                                             

 * http://blog.csdn.net/conowen                                                                                                             

 * 注:本文为原创。仅作为学习交流使用,转载请标明作者及出处。

********************************************************************************************/

一: 项目目的

近期项目设计到网联网视频採集聚合。写了一个关于互联网视频的信息爬虫的小程序,以youku在线视频站点为例,实现一个java平台下的应用程序,动态抓取互联网视频信息保存到本地xml文件,构建一个多媒体播放源中心。

二:项目第三方库:

1、jsoup (HTML代码解析器)

jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。

它提供了一套很省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。



jsoup的主要功能例如以下:



·从一个URL,文件或字符串中解析HTML;



·使用DOM或CSS选择器来查找、取出数据。



·可操作HTML元素、属性、文本;



jsoup是基于MIT协议公布的。可放心使用于商业项目。

官方地址:http://jsoup.org/

2、jdom (XML构建于解析工具)

通过jdom,能够非常easy地构建符合规范的xml文件,而且,jdom提供对xml文件的高速解析。

官方地址:http://jdom.org/

三:开发大体过程:

如youku(优酷)在线视频播放站点,本身就做了互联网视频聚合,就是旗下的soku。下面就已soku为例

如电视剧所相应的url地址为:http://www.soku.com/channel/teleplaylist_0_0_0_1_1.html

通过浏览器查看这个页面的HTML代码分析可知

<div class="item">
<ul class="p pv">
<li class="p_link"><a href="/detail/show/XMzk3MTk2" target="_blank" title="叛逃" _log_pos="1" _log_directpos="1"></a></li>
<li class="p_thumb"><img original="http://g1.ykimg.com/05160000532655E067379F61EC00286C" alt="叛逃"></li>
<li class="p_status"><span class="status">正片</span><span class="bg"></span></li> <li class="p_ishd"><span class="ico__SD" title="超清"></span></li>
<li class="p_title"><a href="/detail/show/XMzk3MTk2" title="叛逃" target="_blank" _log_pos="1" _log_directpos="2">叛逃</a></li>
<li class="p_actor"><label>主演:</label><a href='/v?keyword=%E9%99%88%E5%B1%95%E9%B9%8F' title='陈展鹏' target='_blank' _log_pos='1' _log_directpos='3'>陈展鹏</a> / <a href='/v?keyword=%E5%90%B4%E5%8D%93%E7%BE%B2' title='吴卓羲' target='_blank' _log_pos='1' _log_directpos='3'>吴卓羲</a> / <a href='/v?keyword=%E9%99%88%E8%8C%B5%E5%AA%BA' title='陈茵媺' target='_blank' _log_pos='1' _log_directpos='3'>陈茵媺</a> </li>
<li class="p_desc" >香港作为国际大都会,随时有可能会受到恐怖突击。为了防止境内可能出现的恐怖活动,反恐特勤队于2009...</li>
<li class="p_rating"><span class="ranking">9.2</span>分</li>
<li class="p_panels"> <div class='linkpanels site14' style='display:none;'> <div class="mask">
<div class="ico__loading_32"></div>
</div> <div class="panel_15">
<ul class="linkpanel">
<li><a href='http://v.youku.com/v_show/id_XNjg2NTcyODI0.html' target='_blank' _log_pos='1' _log_directpos='4'>1</a></li>
<li><a href='http://v.youku.com/v_show/id_XNjg3MDU2NzUy.html' target='_blank' _log_pos='1' _log_directpos='4'>2</a></li>
<li><a href='http://v.youku.com/v_show/id_XNjg3NDk4NjQ0.html' target='_blank' _log_pos='1' _log_directpos='4'>3</a></li>
<li><a href='http://v.youku.com/v_show/id_XNjg3OTc5MjUy.html' target='_blank' _log_pos='1' _log_directpos='4'>4</a></li> <li class="mhandle" title="显示所有"><span>...</span></li> <li><a href='http://v.youku.com/v_show/id_XNjk4ODk2MjI4.html' target='_blank' _log_pos='1' _log_directpos='4'>21</a></li>
<li><a href='http://v.youku.com/v_show/id_XNjk5Mzc4ODky.html' target='_blank' _log_pos='1' _log_directpos='4'>22</a></li>
<li><a href='http://v.youku.com/v_show/id_XNjk5Nzk4NjEy.html' target='_blank' _log_pos='1' _log_directpos='4'>23</a><em class="ico__newpgm"></em></li>
<li><a href='http://v.youku.com/v_show/id_XNzAwMjQ2ODEy.html' target='_blank' _log_pos='1' _log_directpos='4'>24</a><em class="ico__newpgm"></em></li> <li class="catahandle" ><span qwindow_key="99299_14"><em>显示所有</em></span></li> </ul>
<div class="clear"></div>
</div> <div class="overlay_show" style="display: none; ">
<ul>
<li><a target="_blank" href="http://v.youku.com/v_show/id_XNjg2NTcyODI0.html" _log_pos='1' _log_directpos='4' >1</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjg3MDU2NzUy.html" _log_pos='1' _log_directpos='4' >2</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjg3NDk4NjQ0.html" _log_pos='1' _log_directpos='4' >3</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjg3OTc5MjUy.html" _log_pos='1' _log_directpos='4' >4</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjg4Mzk0MjA0.html" _log_pos='1' _log_directpos='4' >5</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjg5Njg2MTMy.html" _log_pos='1' _log_directpos='4' >6</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkwMTUxMjg0.html" _log_pos='1' _log_directpos='4' >7</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkwNjE4ODc2.html" _log_pos='1' _log_directpos='4' >8</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkxMDYyMDY4.html" _log_pos='1' _log_directpos='4' >9</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkxNTA1NDc2.html" _log_pos='1' _log_directpos='4' >10</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkyNzk3ODEy.html" _log_pos='1' _log_directpos='4' >11</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkzMjQ5MjU2.html" _log_pos='1' _log_directpos='4' >12</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjkzNzE1ODQ0.html" _log_pos='1' _log_directpos='4' >13</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk0MTQ1NDE2.html" _log_pos='1' _log_directpos='4' >14</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk0NTk4NjU2.html" _log_pos='1' _log_directpos='4' >15</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk1NzkwNDky.html" _log_pos='1' _log_directpos='4' >16</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk2MjE0ODAw.html" _log_pos='1' _log_directpos='4' >17</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk2NzA3OTAw.html" _log_pos='1' _log_directpos='4' >18</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk3MTQ3NDg0.html" _log_pos='1' _log_directpos='4' >19</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk3NjAyMzU2.html" _log_pos='1' _log_directpos='4' >20</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk4ODk2MjI4.html" _log_pos='1' _log_directpos='4' >21</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk5Mzc4ODky.html" _log_pos='1' _log_directpos='4' >22</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNjk5Nzk4NjEy.html" _log_pos='1' _log_directpos='4' >23</a></li><li><a target="_blank" href="http://v.youku.com/v_show/id_XNzAwMjQ2ODEy.html" _log_pos='1' _log_directpos='4' >24</a></li>
</ul>
<div class="clear"></div>
</div> </div> <!-- linkpanels end --> <div class='linkpanels site1' style='display:;'> <div class="mask">
<div class="ico__loading_32"></div>
</div> <div class="panel_15">
<ul class="linkpanel">
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/C08DUfUmLQ8.html' target='_blank' _log_pos='1' _log_directpos='4'>1</a></li>
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/9k94iBLitvc.html' target='_blank' _log_pos='1' _log_directpos='4'>2</a></li>
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/DtZl97kKHJ8.html' target='_blank' _log_pos='1' _log_directpos='4'>3</a></li>
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/bOowUNpVpps.html' target='_blank' _log_pos='1' _log_directpos='4'>4</a></li> <li class="mhandle" title="显示所有"><span>...</span></li> <li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/eIuEWbGBlZo.html' target='_blank' _log_pos='1' _log_directpos='4'>21</a></li>
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/04MteDKPh0k.html' target='_blank' _log_pos='1' _log_directpos='4'>22</a></li>
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/j3No8CjvPMU.html' target='_blank' _log_pos='1' _log_directpos='4'>23</a><em class="ico__newpgm"></em></li>
<li><a href='http://www.tudou.com/albumplay/h_qzeM93b4o/DZqhSzIue7k.html' target='_blank' _log_pos='1' _log_directpos='4'>24</a><em class="ico__newpgm"></em></li> <li class="catahandle" ><span qwindow_key="99299_1"><em>显示所有</em></span></li> </ul>
<div class="clear"></div>
</div> <div class="overlay_show" style="display: none; ">
<ul>
<li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/C08DUfUmLQ8.html" _log_pos='1' _log_directpos='4' >1</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/9k94iBLitvc.html" _log_pos='1' _log_directpos='4' >2</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/DtZl97kKHJ8.html" _log_pos='1' _log_directpos='4' >3</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/bOowUNpVpps.html" _log_pos='1' _log_directpos='4' >4</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/17j0DZpn1ks.html" _log_pos='1' _log_directpos='4' >5</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/L9BfyEe2Lnc.html" _log_pos='1' _log_directpos='4' >6</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/wC0wkJ06oig.html" _log_pos='1' _log_directpos='4' >7</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/t1eKauFslM8.html" _log_pos='1' _log_directpos='4' >8</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/cpA0-6Eju_M.html" _log_pos='1' _log_directpos='4' >9</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/kO6GYIebudU.html" _log_pos='1' _log_directpos='4' >10</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/f9WyMO1cvAU.html" _log_pos='1' _log_directpos='4' >11</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/ZXJJ718tUMM.html" _log_pos='1' _log_directpos='4' >12</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/b_3VAZzRLxk.html" _log_pos='1' _log_directpos='4' >13</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/m_V42BUl10M.html" _log_pos='1' _log_directpos='4' >14</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/E6WlWOITEn0.html" _log_pos='1' _log_directpos='4' >15</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/oDss8E8Ca1k.html" _log_pos='1' _log_directpos='4' >16</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/HYY6zgJgsjY.html" _log_pos='1' _log_directpos='4' >17</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/qk2asOj0eLE.html" _log_pos='1' _log_directpos='4' >18</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/SejnSBUxZ0o.html" _log_pos='1' _log_directpos='4' >19</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/K4FAUFU8_eM.html" _log_pos='1' _log_directpos='4' >20</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/eIuEWbGBlZo.html" _log_pos='1' _log_directpos='4' >21</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/04MteDKPh0k.html" _log_pos='1' _log_directpos='4' >22</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/j3No8CjvPMU.html" _log_pos='1' _log_directpos='4' >23</a></li><li><a target="_blank" href="http://www.tudou.com/albumplay/h_qzeM93b4o/DZqhSzIue7k.html" _log_pos='1' _log_directpos='4' >24</a></li>
</ul>
<div class="clear"></div>
</div> </div> <!-- linkpanels end --> <!--playarea end--> <div class="playarea">
<div class="pgm-source">
<div class="source source_one"> <label>播放源:</label> <span name="土豆网" id="site1" sv="-9976.0">
<a href="http://www.tudou.com/albumplay/h_qzeM93b4o/C08DUfUmLQ8.html" status="更新至24集" target="_blank" speed="0" stypename="超清" stype="SD" title="土豆网-更新至24集" _log_pos="1" _log_directpos="5">
<img src="http://static.soku.com/v1.0.0749/soku/inthesky/img/favicon/tudou.png" />
</a>
</span> <span name="优酷网" id="site14" sv="-9976.0">
<a href="http://v.youku.com/v_show/id_XNjg2NTcyODI0.html" status="更新至24集" target="_blank" speed="0" stypename="超清" stype="SD" title="优酷网-更新至24集" _log_pos="1" _log_directpos="5">
<img src="http://static.soku.com/v1.0.0749/soku/inthesky/img/favicon/youku.png" />
</a>
</span> </div>
</div>
</div> <!--playarea end--> </li>
</ul>
</div>

就能够获得此视频的名称。封面图片地址,更新的状态,各个播放源的地址。

获取视频信息:

1、jsoup解析演示:

获取一个页面的内容。能够採用下面方式

Document doc = Jsoup.connect("http://example.com/").get();

得到doc就能够进行解析操作了。

当然,也能够设置一些连接參数,如浏览器userAgent,超时时间,页面内存大小等等。

对页面的解析就如同对xml解析一样。非常easy。通过tab或者class标签就能够获取对应的内容了。

2、jsoup抓取youku优酷视频信息

	public void getVideoInfo(String pageUrl) {// 一页调用一次

		try {
doc = Jsoup.connect(pageUrl).maxBodySize(1024 * 1024 * 10)
.timeout(6000).get();
// Added a maximum body response size to Jsoup.Connection, to
// prevent running out of memory when trying to read extremely
// large
// documents. The default is 1MB.
} catch (IOException e) {
// TODO Auto-generated catch block
getVideoInfo(pageUrl);
System.out.println("connect error");
e.printStackTrace();
} divs_info = doc.getElementsByClass("p_link");// 视频专辑url,如电视剧 if (divs_info != null) { if (divs_info.size() <= 0) {
divs_info = doc.getElementsByClass("v_link");// 视频播放url。如资讯 } urls = divs_info.select("a[href]"); if (null != urls) {
int i = 0; for (Element urlElement : urls) { videoTitles.add(urlElement.attr("title")); videoUrl.add(urlElement.attr("abs:href"));
i++; }
} }
divs_thumbs = doc.getElementsByClass("p_thumb");// 获取专辑图片
if (divs_thumbs != null) { thumbs = divs_thumbs.select("img[original]");
if (thumbs.size() <= 0) {
divs_thumbs = doc.getElementsByClass("v_thumb");
thumbs = divs_thumbs.select("img[original]");
}
if (null != thumbs) {
int i = 0;
for (Element thumb : thumbs) { videoThumbUrls.add(thumb.attr("abs:original")); i++; } }
}
divs_pgm_source = doc.getElementsByClass("pgm-source");// 获取更新情况
// divs_pgm_source.select(query) if (divs_pgm_source != null) {
for (Element thumb1 : divs_pgm_source) {
sourceId = thumb1.select("span");
sourceUrl = thumb1.select("a");
List<String> videoSourceStatus = null;
List<String> videoSourceUrl = null;
List<String> videoSourceId = null;//保存获取的数据,以供构建xml文件 if (null != sourceId) {
videoSourceId = new ArrayList<String>();
for (Element thumb2 : sourceId) { videoSourceId.add(thumb2.attr("id")); }
videoSourceIdList.add(videoSourceId); }
if (null != sourceUrl) {
videoSourceStatus = new ArrayList<String>();
for (Element thumb2 : sourceUrl) { videoSourceStatus.add(thumb2.attr("status")); }
videoSourceStatusList.add(videoSourceStatus); } if (null != sourceUrl) {
videoSourceUrl = new ArrayList<String>();
for (Element thumb2 : sourceUrl) { videoSourceUrl.add(thumb2.attr("href")); }
videoSourceUrlList.add(videoSourceUrl); } } }
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

四、构建视频xml信息文件:

1、创建xml文件

xmlHelper.createXml(str, videoTitles, videoUrl, videoThumbUrls,
videoSourceIdList, videoSourceStatusList,
videoSourceUrlList, pageNum); // 创建xml

2、创建xml文件过程

public void createXml(String fileName, List<String> videoTitles,
List<String> videoUrl, List<String> videoThumbUrls,
List<List<String>> videoSourceIdList,
List<List<String>> videoSourceStatusList,
List<List<String>> videoSourceUrlList, int pageNum) { // 创建根节点
Element root = new Element("videoInfo");
// 创建每一页的节点
Element pageElement = new Element("page");
//设置页码
pageElement.setAttribute("page", "" + pageNum); Document Doc = new Document(root); for (int i = 0; i < videoTitles.size(); i++) { // 创建节点 videoId
Element VideoIdElement = new Element("videoId");
// 给 videoId 节点加入属性 id;
VideoIdElement.setAttribute("id", ""
+ (i + 1 + (pageNum - 1) * videoTitles.size())); // 填写视频信息的值
VideoIdElement.addContent(new Element("videoTitle")
.setText(videoTitles.get(i)));
VideoIdElement.addContent(new Element("videoUrl").setText(videoUrl
.get(i)));
VideoIdElement.addContent(new Element("videoThumbUrls")
.setText(videoThumbUrls.get(i)));
for (int j = 0; j < videoSourceIdList.get(i).size(); j++) {
Element sourceElement = new Element("source");
sourceElement.setAttribute("id", ""
+ videoSourceIdList.get(i).get(j));
sourceElement.setAttribute("status", ""
+ videoSourceStatusList.get(i).get(j));
sourceElement.setAttribute("url", ""
+ videoSourceUrlList.get(i).get(j));
VideoIdElement.addContent(sourceElement);
}
// 加入每个子视频到每一页上面
pageElement.addContent(VideoIdElement); }
// 加入每一页的视频到根节点上面
root.addContent(pageElement);
Format format = Format.getCompactFormat();
format.setEncoding("utf-8"); // setEncoding 设置编码
format.setIndent(" ");
XMLOutputter XMLOut = new XMLOutputter(format); try {
XMLOut.output(Doc, new FileOutputStream(fileName));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

注意:利用jdom构建xml时,有一点要注意的就是,不设置的话,jdom构建的xml不会换行。导致xml文件异常乱。难以看懂。

能够採用下面设置就可以实现xml文件的换行操作。

Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent(" ");

解析效果图每一页大概所需时间为2~3s。页面比較大。是网络情况而定。

构建出来的xml文件例如以下

<?xml version="1.0" encoding="utf-8"?>
<videoInfo>
<page page="1">
<videoId id="1">
<videoTitle>来自星星的你</videoTitle>
<videoUrl>http://www.soku.com/detail/show/XMTEyNDE0NA==</videoUrl>
<videoThumbUrls>http://g3.ykimg.com/0516000052AD289A675839358A07B6AA</videoThumbUrls>
<source id="site19" status="21集全" url="http://www.iqiyi.com/v_19rrhd5t9s.html" />
<source id="site17" status="21集全" url="http://www.letv.com/ptv/vplay/2234148.html" />
<source id="site14" status="更新至17集" url="" />
</videoId>
<videoId id="2">
<videoTitle>食为奴</videoTitle>
<videoUrl>http://www.soku.com/detail/show/XMTA5MTQ1Mg==</videoUrl>
<videoThumbUrls>http://g4.ykimg.com/0516000052F4A2C56758390A8D0C4E55</videoThumbUrls>
<source id="site14" status="更新至22集" url="http://v.youku.com/v_show/id_XNjcxNTA0Mzg0.html" />
<source id="site1" status="更新至22集" url="http://www.tudou.com/albumplay/mXTEnVluN7k/jeB4vVjU13s.html" />
</videoId>
<videoId id="3">
<videoTitle>屌丝男士</videoTitle>
<videoUrl>http://www.soku.com/detail/show/XMTA4MzkwNA==</videoUrl>
<videoThumbUrls>http://g1.ykimg.com/05160000519310F4670C4A1AE002FEB1</videoThumbUrls>
<source id="site6" status="7集全" url="http://tv.sohu.com/20121010/n354554959.shtml" />
</videoId>
<videoId id="4">
<videoTitle>屌丝男士 第三季</videoTitle>
<videoUrl>http://www.soku.com/detail/show/XMTE0NzU2OA==</videoUrl>
<videoThumbUrls>http://g4.ykimg.com/051600005305D18E6758397D8206CC34</videoThumbUrls>
<source id="site6" status="更新至3集" url="http://tv.sohu.com/20140225/n395573773.shtml" />
</videoId>

java平台利用jsoup开发包,抓取优酷视频播放地址与图片地址等信息。的更多相关文章

  1. 用 Java 抓取优酷、土豆等视频

    1. [代码][JavaScript]代码  import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes ...

  2. python爬虫---抓取优酷的电影

    最近在学习爬虫,用的BeautifulSoup4这个库,设想是把优酷上面的电影的名字及链接爬到,然后存到一个文本文档中.比较简单的需求,第一次写爬虫.贴上代码供参考: # coding:utf-8 i ...

  3. selenium爬取优酷页面并下载图片

    from selenium import webdriver import requests driver = webdriver.Chrome() #打开优酷 driver.get("ht ...

  4. 爬虫(三)解析js,抓取优酷免费视频的真实播放地址

    工具:google浏览器 + fiddler抓包工具 说明:这里不贴代码,[只讲思路!!!] 原始url = https://v.youku.com/v_show/id_XMzIwNjgyMDgwOA ...

  5. Android利用tcpdump和wireshark抓取网络数据包

    Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...

  6. 【JAVA系列】Google爬虫如何抓取JavaScript的?

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[JAVA系列]Google爬虫如何抓取Java ...

  7. 利用python scrapy 框架抓取豆瓣小组数据

    因为最近在找房子在豆瓣小组-上海租房上找,发现搜索困难,于是想利用爬虫将数据抓取. 顺便熟悉一下Python. 这边有scrapy 入门教程出处:http://www.cnblogs.com/txw1 ...

  8. 使用jsoup进行网页内容抓取

    对网页内容的抓取比较的感兴趣,于是就简单的学习了一下,如果不使用任何的框架去抓取网页的内容,感觉有点难度,我就简单点来吧,这里所使用的jsoup框架,抓取网页的内容与使用jquery选择网页的内容差不 ...

  9. 如何利用Python网络爬虫抓取微信朋友圈的动态(上)

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

随机推荐

  1. cache支持三种pre-fetch方式:normal/pre-fetch1/pre-fetch2-way1/pre-fetch-way2

    1.normal fetch  ----fetch 1 cache line once 2. pre-fetch mode one ---- fetch 3 cache line once 3.pre ...

  2. python中的list、tuple和dictionary

    列表 列表是python中最基本的数据结构之一,并且列表的数据项不需要具有相同的数据类型,创建一个列表,只需把逗号分隔的不同数据项使用方括号括起来即可.具体的定义式如下: list=['变量1','变 ...

  3. 杭电 1503 Advanced Fruits

    Description The company "21st Century Fruits" has specialized in creating new sorts of fru ...

  4. POJ 1849 树的直径 Two

    如果一个点开始遍历一棵树再回到原点那么每条边走两次. 现在是两个人从同一点出发,那么最后遍历完以后两人离得越远越好. 最后两人所处位置的路径上的边走了一次,其他边走了两次. 要使总路程最小,两人最后停 ...

  5. 面试准备——JVM相关

    https://www.cnblogs.com/goody9807/p/6511480.html https://www.cnblogs.com/java1024/p/8594784.html htt ...

  6. ORA-02437 违反主键

    在给study用户下的semp表建立主键的时候,出现以下错误:SQL> alter table semp add constraint pk_emp primary key(empno);alt ...

  7. windows下在指定目录下打开命令行

    直接用cd的话比较麻烦,可以先进入制定目录后,按住shift键,鼠标右键可以选择“在此处打开命令窗口”

  8. 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)

    先把代码扔上来 E. Field of Wonders time limit per test 3 seconds memory limit per test 256 megabytes input ...

  9. 九度oj 题目1017:还是畅通工程

    题目描述:     某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...

  10. BZOJ 2337 [HNOI2011]XOR和路径 ——期望DP

    首先可以各位分开求和 定义$f(i)$表示从i到n的期望值,然后经过一些常识,发现$f(n)=1$的时候的转移,然后直接转移,也可以找到$f(n)=0$的转移. 然后高斯消元31次就可以了. #inc ...