- 00. 这里整理了最全的爬虫框架(Java + Python)
有一只柴犬
爬虫系列爬虫javapython
目录1、前言2、什么是网络爬虫3、常见的爬虫框架3.1、java框架3.1.1、WebMagic3.1.2、Jsoup3.1.3、HttpClient3.1.4、Crawler4j3.1.5、HtmlUnit3.1.6、Selenium3.2、Python框架3.2.1、Scrapy3.2.2、BeautifulSoup+Requests3.2.3、Selenium3.2.4、PyQuery3.2
- 2024年Java爬虫利器:Jsoup详细介绍与用法_java jsoup(1)
2401_84562143
程序员java爬虫开发语言
.method(Connection.Method.GET).execute();DocumentloginDoc=loginForm.parse();Elementform=loginDoc.select(“form”).first();//填充表单字段form.select(“input[name=username]”).val(“username”);form.select(“input[n
- Java爬虫开发:Jsoup库在图片URL提取中的实战应用
小白学大数据
pythonjava爬虫开发语言测试工具前端javascript
在当今的互联网时代,数据的获取和处理变得尤为重要。对于网站内容的自动化抓取,爬虫技术扮演着不可或缺的角色。Java作为一种广泛使用的编程语言,拥有丰富的库支持网络爬虫的开发。其中,Jsoup库以其简洁、高效的特点,成为处理HTML内容和提取数据的优选工具。本文将详细介绍如何使用Jsoup库开发Java爬虫,以实现图片URL的提取。Jsoup库简介Jsoup是一个用于解析HTML文档的Java库,它
- 不通过修改代码可以调用不同方法的三种方式
山间清泉1111
Stringpath=JsoupDemo1.class.getClassLoader().getResource("com/mujiachao/xml/dtd/student.xml").getPath();Documentdocument=Jsoup.parse(newFile(path),"utf-8");Elementsname=document.getElementsByTag("name
- webmagic高级:(四)
沙漏如心
本篇呢,本来打算写一下,pipeline里面的ResultItems对象,但是呢,简单看了一下,里面东西不是很多。所以呢,我这次说,这个selectable对象,也就是节点对象,就想jsoup里面element对象.不过呢,这个对象内容较多所以,我们就只看一下他的接口,而不去看他的很多个实现类了!selectable前面呢,我们说过webmagic呢,是一个集成了jquery选择器,css选择器,
- 大数据相关技术
ssttIsme
1数据获取方式爬虫:分布式爬虫java的jsoup(操作方式基于选择器),pythoon,八爪鱼日志收集:log4j(可以控制级别和放置的位置)(可以输出数据到flume)(可以输出到mq),flume(分布式日志收集系统)(收集用户ip,访问了哪个方法)(例如三大运营商的日志分析能根据用户71个字段,拿到谁在什么时间什么地点用什么手机什么浏览器哪个版本访问了什么网站访问了多长时间网站内容是什么)
- 2021最新版 ElasticSearch 7.6.1 教程详解 爬虫jsoup+es模拟京东搜索(狂神说)
Super_Song_
中间件elasticsearch搜索引擎javanosql
文章目录一、ElasticSearch简介1.了解创始人DougCutting2.Lucene简介3.ElasticSearch简介4.ElasticSearch和Solr的区别5.了解ELK二、软件安装1.ElasticSearch2.ElasticSearchHead3.Kibana三、ElasticSearch使用详解1.ES核心概念文档索引倒排索引ik分词器2.命令模式的使用Rest风格说
- JAVA爬虫三种方法
weixin_40298650
文章目录前言一、JDK二、HttpClient三、Jsoup总结前言记录JAVA爬虫三种方式一、JDK使用JDK自带的URLConnection实现网络爬虫。publicvoidtestGet()throwsException{//1.确定要访问/爬取的URLURLurl=newURL("https://blog.csdn.net/weixin_40298650/article/details/1
- [含完整代码]Java实现导出word文档【超详细】
Java患者·
javawordc#
前言:个人博客:www.wdcdbd.comjava实现导出word文档是项目中很常见的操作,但又是很棘手的操作,这篇文章,带大家从0到1超详细的完整的操作一遍java实现导出word文档。一定要认真看这篇文章,超详细。话不多说直接上代码。〇、实现导出word文档前准备使用的依赖:org.jsoupjsoup1.11.3cn.hutoolhutool-all5.8.16org.apache.com
- 如何使用工具获取动态HTML页面内容
CodingCode
如何使用工具获取动态HTML页面内容我们知道jsoup可以用来获取HTML页面并且分析读取页面内容。例如:importjava.io.IOException;importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;importorg.jsoup.nodes.Element;importorg.jsoup.select.Elements;public
- Jsoup使用示例
大灰狼zz
查看网页源码和对应标签使用QQ浏览器搜狗引擎搜索奥迪image.png在浏览器中按F12可以查看网页源码image.png点击源码左上角的按钮image.png再把鼠标移动到坐标任意位置,在源代码中会高亮对应的标签image.png网页爬虫示例在gradle中引入Jsoupdependencies{//爬虫api'org.jsoup:jsoup:1.11.3'相关代码@Overridepublic
- ElasticSearch-ElasticSearch实战-仿京东商城搜索(高亮)
666-LBJ-666
ESelasticsearch全文检索springboot
注:此为笔者学习狂神说ElasticSearch的实战笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!!七、ElasticSearch实战仿京东商城搜索(高亮)1、工程创建(springboot)目录结构2、基本编码①导入依赖1.8UTF-8UTF-82.3.7.RELEASEorg.jsoupjsoup1.10.2com.alibabafastjson1.
- 实践:读取html文本提取相应内容按照格式导出到excel中
酱学编程
htmlexcel
最近在做一个需求,需要将html文本中的内容提取出来,然后导出到excel里面,实现交代情景,html文本中存在许多标签,且很乱,因此需要之间将标签里面的文本提取出来,再进行处理。............Stringtext=Jsoup.parse(content).wholeText();//解析字符串并将数据添加到表格String[]dataArray=text.split("\n");//创
- Java 数据抓取
踏遍三十六岸
java项目中高效开发java后端数据
大家好我是苏麟,今天聊聊数据抓取.大家合理使用注意,爬虫技术不能滥用,干万不要给别人的系统造成压力、不要侵犯他人权益!数据抓取实质上就是java程序模拟浏览器进行目标网站的访问,无论是请求目标服务器的接口还是请求目标网页内容,都是要在java程序中对数据进行解析。最简单的抓取方式有httpclient请求目标服务器接口,jsoup请求目标页面内容,把请求的数据进行解析然后入库。另外要做好爬取的实时
- 2018-01-05
大黄2333
主要工作选取首页中的超链接,利用布隆容器去重,将最终需要的网页选取出来,用前几节课学习的方法将需要的信息抓取出来并且存放到数据库中。具体工作1、初始页面在myeclipse中输入选取的首页2、用jsoup模拟浏览器代码如下:网页的头请求用jsoup模拟浏览器3、初始化三个容器作用:1、布隆容器去重,检测网页的唯一性。2、list容器存放中间页面。3、存放最终页面。代码如下:publicstatic
- 高效 Java 程序员不能错过的 10+ 个最佳库!
Java架构学习者
举些例子,最常用的官方库有java.lang、java.util、java.io、java.sql、java.net等;而至于目前最流行的第三方库,就有Junit、SLF4J、GoogleGuava、XStream、JSoup、Gson、JodaTime等,可以说是不胜枚举。我到底需要用到哪些Java库呢?某些库再热门也好,你的项目也未必适用。然而即便如此,大部分项目实际上都还是需要进行单元测试、
- 使用Jenkins执行TestNg+Selenium+Jsoup自动化测试和生成ExtentReport测试报告
penngo
java持续交付jenkinsselenium运维自动化测试
文章目录1、Jenkins1.1下载安装jenkins1.2安装HTMLPublisher插件2、使用Jenkins创建流水线任务2.1创建流水线2.2构建2.3测试报告上一篇已经介绍Maven整合TestNG、ExtentReports、Selenium、Jsoup测试项目工程的建立,本文介绍使用Jenkins执行自动化测试代码。1、Jenkins1.1下载安装jenkins下载jenkins:
- go实现生成html文件和html文件浏览服务
penngo
Gogolanghtmlgin
文章目录本文章是为了解决使用Jenkins执行TestNg+Selenium+Jsoup自动化测试和生成ExtentReport测试报告生成的测试报告,只能在jenkins里面访问,为了方便项目组内所有人员都能查看测试报,可以在jenkins构建时,把测试报告的html推送到其它http服务,再让该http服务提供访问。为了实现上边的功能,需要编写两个HTTP接口:1、upload接口,接收发送的
- Java爬虫批量爬取图片
zxy199288
javajava爬虫python
Java爬取图片现在开始学习爬虫,对于爬虫的入门来说,图片相对来说是比较容易获取的,因为大部分图片都不是敏感数据,所以不会遇到什么反爬措施,对于入门爬虫来说是比较合适的。使用技术:Java基础知识、HttpClient4.x、Jsoup学习目标:下载静态资源图片。爬取思路对于这种图片的获取,其实本质上就是就是文件的下载(HttpClient)。但是因为不只是获取一张图片,所以还会有一个页面解析的处
- JAVA爬虫案例——JSOUP爬取图片并使用v-viewer实现图片预览
北溟溟
JAVAjava爬虫
前言网络爬虫是大数据时代收集数据的一种有效手段,合理合法的运用技术手段获取网络数据,实现数据的再利用也是程序员的一项重要技能。本节我们使用java环境下的jsoup实现网络数据的爬取,主要是图片数据的异步爬取,并实现网络图片的下载及图片的预览功能,预览功能使用具有丰富功能的v-viewer实现。正文引入爬虫pom工具包org.apache.httpcomponentshttpclient4.5.6
- SpringBoot-Jsoup做java简单-爬虫
番茄好困
爬虫java
使用SpringBoot+Jsoup做java简单’爬虫’Jsoup简介Jsoup是一款java的Html解析器,可以直接解析Html。针对网页提供了相关Api,可以通过Dom、Css、Jquery等属性来操作和解析网页。主要类介绍:Jsoup类提供了连接,清理和解析HTML文档的方法Document获取HTML文档Element获取、操作HTML节点实战(爬京东网页数据)1.创建Maven项目2
- java中用jsoup抓取网页源码,并批量下载图片
平凡的华仔
java爬虫工具jsoupjsoup网页解析爬虫批量下载图片
一、导入jsoup的核心jar包jsoup-xxx.jarjar包下载:jsoup-1.8.2.jar中文API:http://www.open-open.com/jsoup/parsing-a-document.htm二、java中用jsoup抓取网页源码,并批量下载图片packagecom.dgh.test;importjava.io.File;importjava.io.FileOutput
- Jsoup - 【Java爬虫】- 批量下载指定网站图片
QX_Java_Learner
Javajava
简介Jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。Jsoup对多线程、连接池、代理等等的支持并不是很好,所以一般把Jsoup仅仅作为HTML解析工具使用。功能从一个URL、文件或字符串中解析HTML使用DOM或CSS选择器来查找、取出数据可操作HTML元素、属
- WebMagic爬虫Demo
我是一颗小虎牙_
前言WebMagic介绍Java的可伸缩Web搜寻器框架。官方网站:http://webmagic.io/一款爬虫框架是WebMagic,其底层使用的HttpClient和Jsoup。WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能。WebMagic的设计目标是尽量的模块化,并体现爬虫的功能
- pom.xml文件配置
来之前不会起名字
Javajavamaven
1.中央仓库查看jar文件2.添加项目依赖com.mysqlmysql-connector-j8.1.0org.jsoupjsoup1.16.1org.projectlomboklombok1.18.28provided3.配置本地项目jdk修改idea项目模块,jdk依赖修改maven项目的pom.xml配置文件4.0.0org.examplem11.0-SNAPSHOT1717UTF-8com
- 【Java】使用Java实现爬虫
Do_GH
Javajava爬虫
文章目录使用Java实现爬虫一、HttpClient实现模拟HTTP访问1.1HttpClient1.2引入依赖1.3创建简单的请求操作1.3.1创建实例1.3.2Jsoup应用1.4爬取过程中可能出现的问题1.4.1JS异步加载问题1.4.2反爬技术的影响1.5爬取需要登录的页面1.5.1在header中直接携带Cookie1.5.2模拟登录自动获取Cookie二、HtmlUtil实现JS异步加
- 如何检查项目中用到的License
xxzblog
javajava
检查项目中用到的Licenseorg.jsoupjsoup1.11.3org.apache.commonscommons-lang33.12.0执行命令生成依赖报告./mvnwproject-info-reports:dependencies直接上代码packagejsbxyyx;importorg.apache.commons.lang3.StringUtils;importorg.jsoup.
- 【Java 代码实例 7】jsoup解析html
哪 吒
Java基础教程系列javajqueryhtml
Java学习路线:搬砖工逆袭Java架构师简介:Java领域优质创作者、CSDN哪吒公众号作者✌、Java架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习、一起进步欢迎点赞收藏⭐留言一、Jsoup简介Jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。二、Jsou
- 【数据爬取】Jsoup爬取数据的使用
script-pro
java爬虫开发语言javaJsoup
目录1.Jsoup介绍2.导入依赖3.爬虫示例1.Jsoup介绍Jsoup是一个用于解析、提取和操作HTML文档的Java库。它提供了简单且易于使用的API,能够轻松地从HTML页面中提取数据。2.导入依赖org.jsoupjsoup1.14.33.爬虫示例示范了一个爬取微博网数据的示例:importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document;im
- 【Java-随笔】常用依赖
SUNxRUN
java开发语言
Jsouphttps://mvnrepository.com/artifact/org.jsoup/jsouporg.jsoupjsoup1.15.3HttpClienthttps://mvnrepository.com/artifact/org.apache.httpcomponents/httpclientorg.apache.httpcomponentshttpclient4.5.13Myb
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http