Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webmagic
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
沈俊林
webmagic
Commits
1e486d20
Commit
1e486d20
authored
Mar 13, 2018
by
shenjunlin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改代码
parent
6f611a1f
Changes
25
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
3750 additions
and
142 deletions
+3750
-142
pom.xml
pom.xml
+0
-1
ZhihuPageProcessor.java
...ecraft/webmagic/processor/example/ZhihuPageProcessor.java
+1
-1
pom.xml
webmagic-extension/pom.xml
+28
-2
SeleniumDownloader.java
.../us/codecraft/webmagic/downloader/SeleniumDownloader.java
+3
-4
WebDriverPool.java
.../java/us/codecraft/webmagic/downloader/WebDriverPool.java
+1
-1
SeleniumDownloaderTest.java
...codecraft/webmagic/downloader/SeleniumDownloaderTest.java
+1
-1
WebDriverPoolTest.java
...a/us/codecraft/webmagic/downloader/WebDriverPoolTest.java
+1
-1
pom.xml
webmagic-samples/pom.xml
+12
-0
MobileVO.java
...in/java/us/codecraft/webmagic/model/samples/MobileVO.java
+76
-0
News163.java
...ain/java/us/codecraft/webmagic/model/samples/News163.java
+1
-1
AnjukeSpider.java
...main/java/us/codecraft/webmagic/samples/AnjukeSpider.java
+0
-1
GithubRepo.java
...c/main/java/us/codecraft/webmagic/samples/GithubRepo.java
+9
-0
GithubRepoPageProcessor.java
...s/codecraft/webmagic/samples/GithubRepoPageProcessor.java
+1
-0
IteyeBlogProcessor.java
...ava/us/codecraft/webmagic/samples/IteyeBlogProcessor.java
+8
-2
Mobils.java
...s/src/main/java/us/codecraft/webmagic/samples/Mobils.java
+3342
-0
SinaBlogProcessor.java
...java/us/codecraft/webmagic/samples/SinaBlogProcessor.java
+1
-0
WeiboTopSpider.java
...in/java/us/codecraft/webmagic/samples/WeiboTopSpider.java
+1
-1
ZolBrandSpider.java
...in/java/us/codecraft/webmagic/samples/ZolBrandSpider.java
+102
-0
ZolMobileSpider.java
...n/java/us/codecraft/webmagic/samples/ZolMobileSpider.java
+134
-0
DBUtils.java
...es/src/main/java/us/codecraft/webmagic/utils/DBUtils.java
+28
-0
README.md
webmagic-selenium/README.md
+0
-3
config.ini
webmagic-selenium/config.ini
+0
-12
pom.xml
webmagic-selenium/pom.xml
+0
-59
SeleniumTest.java
...t/java/us/codecraft/webmagic/downloader/SeleniumTest.java
+0
-41
config.ini
webmagic-selenium/src/test/resources/config.ini
+0
-11
No files found.
pom.xml
View file @
1e486d20
...
...
@@ -51,7 +51,6 @@
<module>
webmagic-core
</module>
<module>
webmagic-extension/
</module>
<module>
webmagic-scripts/
</module>
<module>
webmagic-selenium
</module>
<module>
webmagic-saxon
</module>
<module>
webmagic-samples
</module>
</modules>
...
...
webmagic-core/src/main/java/us/codecraft/webmagic/processor/example/ZhihuPageProcessor.java
View file @
1e486d20
...
...
@@ -16,7 +16,7 @@ public class ZhihuPageProcessor implements PageProcessor {
@Override
public
void
process
(
Page
page
)
{
page
.
addTargetRequests
(
page
.
getHtml
().
links
().
regex
(
"https://www\\.zhihu\\.com/question/\\d+/answer/\\d+.*"
).
all
());
page
.
putField
(
"title"
,
page
.
getHtml
().
xpath
(
"//
h1[@class='QuestionHeader-title']
/text()"
).
toString
());
page
.
putField
(
"title"
,
page
.
getHtml
().
xpath
(
"//
*[@id=\"zh-recommend-list\"]/div/h2/a
/text()"
).
toString
());
page
.
putField
(
"question"
,
page
.
getHtml
().
xpath
(
"//div[@class='QuestionRichText']//tidyText()"
).
toString
());
page
.
putField
(
"answer"
,
page
.
getHtml
().
xpath
(
"//div[@class='QuestionAnswer-content']/tidyText()"
).
toString
());
if
(
page
.
getResultItems
().
get
(
"title"
)==
null
){
...
...
webmagic-extension/pom.xml
View file @
1e486d20
...
...
@@ -8,6 +8,9 @@
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
webmagic-extension
</artifactId>
<properties>
<webdrivermanager.version>
2.1.0
</webdrivermanager.version>
</properties>
<dependencies>
<dependency>
...
...
@@ -18,8 +21,6 @@
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<version>
15.0
</version>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
us.codecraft.duiba
</groupId>
...
...
@@ -30,6 +31,31 @@
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
</dependency>
<dependency>
<groupId>
io.github.bonigarcia
</groupId>
<artifactId>
webdrivermanager
</artifactId>
<version>
${webdrivermanager.version}
</version>
</dependency>
<dependency>
<groupId>
org.seleniumhq.selenium
</groupId>
<artifactId>
selenium-java
</artifactId>
<version>
3.8.1
</version>
</dependency>
<dependency>
<groupId>
com.codeborne
</groupId>
<artifactId>
phantomjsdriver
</artifactId>
<version>
1.4.3
</version>
<exclusions>
<exclusion>
<artifactId>
selenium-remote-driver
</artifactId>
<groupId>
org.seleniumhq.selenium
</groupId>
</exclusion>
<exclusion>
<artifactId>
selenium-api
</artifactId>
<groupId>
org.seleniumhq.selenium
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
webmagic-
selenium/src/main/java/us/codecraft/webmagic/downloader/selenium
/SeleniumDownloader.java
→
webmagic-
extension/src/main/java/us/codecraft/webmagic/downloader
/SeleniumDownloader.java
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
downloader
.
selenium
;
package
us
.
codecraft
.
webmagic
.
downloader
;
import
org.openqa.selenium.By
;
import
org.openqa.selenium.Cookie
;
...
...
@@ -10,7 +10,6 @@ import us.codecraft.webmagic.Page;
import
us.codecraft.webmagic.Request
;
import
us.codecraft.webmagic.Site
;
import
us.codecraft.webmagic.Task
;
import
us.codecraft.webmagic.downloader.Downloader
;
import
us.codecraft.webmagic.selector.Html
;
import
us.codecraft.webmagic.selector.PlainText
;
...
...
@@ -99,8 +98,8 @@ public class SeleniumDownloader implements Downloader, Closeable {
page
.
setHtml
(
new
Html
(
content
,
request
.
getUrl
()));
page
.
setUrl
(
new
PlainText
(
request
.
getUrl
()));
page
.
setRequest
(
request
);
//
webDriverPool.returnToPool(webDriver);
webDriverPool
.
closeAll
();
webDriverPool
.
returnToPool
(
webDriver
);
//
webDriverPool.closeAll();
return
page
;
}
...
...
webmagic-
selenium/src/main/java/us/codecraft/webmagic/downloader/selenium
/WebDriverPool.java
→
webmagic-
extension/src/main/java/us/codecraft/webmagic/downloader
/WebDriverPool.java
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
downloader
.
selenium
;
package
us
.
codecraft
.
webmagic
.
downloader
;
import
io.github.bonigarcia.wdm.*
;
import
org.openqa.selenium.WebDriver
;
...
...
webmagic-
selenium/src/test/java/us/codecraft/webmagic/downloader/selenium
/SeleniumDownloaderTest.java
→
webmagic-
extension/src/test/java/us/codecraft/webmagic/downloader
/SeleniumDownloaderTest.java
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
downloader
.
selenium
;
package
us
.
codecraft
.
webmagic
.
downloader
;
import
org.junit.Ignore
;
import
org.junit.Test
;
...
...
webmagic-
selenium/src/test/java/us/codecraft/webmagic/downloader/selenium
/WebDriverPoolTest.java
→
webmagic-
extension/src/test/java/us/codecraft/webmagic/downloader
/WebDriverPoolTest.java
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
downloader
.
selenium
;
package
us
.
codecraft
.
webmagic
.
downloader
;
import
org.junit.Ignore
;
import
org.junit.Test
;
...
...
webmagic-samples/pom.xml
View file @
1e486d20
...
...
@@ -44,6 +44,18 @@
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
</dependency>
<dependency>
<groupId>
com.belerweb
</groupId>
<artifactId>
pinyin4j
</artifactId>
<version>
2.5.0
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.6
</version>
</dependency>
</dependencies>
...
...
webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/MobileVO.java
0 → 100644
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
model
.
samples
;
public
class
MobileVO
{
private
String
oldModel
;
private
String
brandName
;
private
String
brandPinyin
;
private
String
mobileName
;
private
String
model
;
private
String
price
;
public
String
getOldModel
()
{
return
oldModel
;
}
public
void
setOldModel
(
String
oldModel
)
{
this
.
oldModel
=
oldModel
;
}
public
String
getBrandName
()
{
return
brandName
;
}
public
void
setBrandName
(
String
brandName
)
{
this
.
brandName
=
brandName
;
}
public
String
getBrandPinyin
()
{
return
brandPinyin
;
}
public
void
setBrandPinyin
(
String
brandPinyin
)
{
this
.
brandPinyin
=
brandPinyin
;
}
public
String
getMobileName
()
{
return
mobileName
;
}
public
void
setMobileName
(
String
mobileName
)
{
this
.
mobileName
=
mobileName
;
}
public
String
getModel
()
{
return
model
;
}
public
void
setModel
(
String
model
)
{
this
.
model
=
model
;
}
public
String
getPrice
()
{
return
price
;
}
public
void
setPrice
(
String
price
)
{
this
.
price
=
price
;
}
@Override
public
String
toString
()
{
return
"MobileVO{"
+
"oldModel='"
+
oldModel
+
'\''
+
", brandName='"
+
brandName
+
'\''
+
", brandPinyin='"
+
brandPinyin
+
'\''
+
", mobileName='"
+
mobileName
+
'\''
+
", model='"
+
model
+
'\''
+
", price='"
+
price
+
'\''
+
'}'
;
}
}
webmagic-samples/src/main/java/us/codecraft/webmagic/model/samples/News163.java
View file @
1e486d20
...
...
@@ -73,7 +73,7 @@ public class News163 implements MultiPageModel {
public
static
void
main
(
String
[]
args
)
{
OOSpider
.
create
(
Site
.
me
(),
News163
.
class
).
addUrl
(
"http://news.163.com/13/0802/05/958I1E330001124J_2.html"
)
.
scheduler
(
new
RedisScheduler
(
"localhost"
)).
addPipeline
(
new
MultiPagePipeline
()).
addPipeline
(
new
ConsolePipeline
()).
run
();
.
addPipeline
(
new
MultiPagePipeline
()).
addPipeline
(
new
ConsolePipeline
()).
run
();
}
}
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/AnjukeSpider.java
View file @
1e486d20
...
...
@@ -73,7 +73,6 @@ public class AnjukeSpider implements PageProcessor {
public
static
void
main
(
String
[]
args
)
throws
JMException
{
HttpClientDownloader
httpClientDownloader
=
new
HttpClientDownloader
();
// httpClientDownloader.setProxyProvider(new SimpleProxyProvider(ProxyUtils.getAllProxy()));
Spider
anjuke
=
Spider
.
create
(
new
AnjukeSpider
()).
setDownloader
(
httpClientDownloader
)
.
setScheduler
(
new
FileCacheQueueScheduler
(
"spider"
).
setDuplicateRemover
(
new
HashSetDuplicateRemover
()))
...
...
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/GithubRepo.java
View file @
1e486d20
...
...
@@ -34,4 +34,13 @@ public class GithubRepo {
public
void
setReadme
(
String
readme
)
{
this
.
readme
=
readme
;
}
@Override
public
String
toString
()
{
return
"GithubRepo{"
+
"name='"
+
name
+
'\''
+
", author='"
+
author
+
'\''
+
", readme='"
+
readme
+
'\''
+
'}'
;
}
}
\ No newline at end of file
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/GithubRepoPageProcessor.java
View file @
1e486d20
...
...
@@ -27,6 +27,7 @@ public class GithubRepoPageProcessor implements PageProcessor {
}
else
{
page
.
putField
(
"repo"
,
githubRepo
);
}
}
@Override
...
...
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/IteyeBlogProcessor.java
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
samples
;
import
com.google.common.collect.Lists
;
import
us.codecraft.webmagic.Page
;
import
us.codecraft.webmagic.Site
;
import
us.codecraft.webmagic.Spider
;
import
us.codecraft.webmagic.pipeline.ResultItemsCollectorPipeline
;
import
us.codecraft.webmagic.processor.PageProcessor
;
/**
...
...
@@ -16,7 +18,6 @@ public class IteyeBlogProcessor implements PageProcessor {
public
void
process
(
Page
page
)
{
page
.
addTargetRequests
(
page
.
getHtml
().
links
().
regex
(
".*yanghaoli\\.iteye\\.com/blog/\\d+"
).
all
());
page
.
putField
(
"title"
,
page
.
getHtml
().
xpath
(
"//title"
).
toString
());
page
.
putField
(
"content"
,
page
.
getHtml
().
smartContent
().
toString
());
}
@Override
...
...
@@ -28,6 +29,11 @@ public class IteyeBlogProcessor implements PageProcessor {
}
public
static
void
main
(
String
[]
args
)
{
Spider
.
create
(
new
IteyeBlogProcessor
()).
thread
(
5
).
addUrl
(
"http://yanghaoli.iteye.com/"
).
run
();
final
ResultItemsCollectorPipeline
resultItemsCollectorPipeline
=
new
ResultItemsCollectorPipeline
();
Spider
.
create
(
new
IteyeBlogProcessor
()).
thread
(
5
).
addUrl
(
"http://yanghaoli.iteye.com/"
).
addPipeline
(
resultItemsCollectorPipeline
).
run
();
// Spider.create(new IteyeBlogProcessor()).thread(5).startUrls(Lists.newArrayList("http://yanghaoli.iteye.com/")).addPipeline(resultItemsCollectorPipeline).run();
resultItemsCollectorPipeline
.
getCollected
().
stream
().
forEach
(
resultItems
->
{
System
.
out
.
println
(
resultItems
);
});
}
}
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/Mobils.java
0 → 100644
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
samples
;
import
com.google.common.collect.Lists
;
import
io.github.bonigarcia.wdm.ChromeDriverManager
;
import
net.sourceforge.pinyin4j.PinyinHelper
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinToneType
;
import
net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.dbutils.DbUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.openqa.selenium.By
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.chrome.ChromeDriver
;
import
us.codecraft.webmagic.model.samples.MobileVO
;
import
us.codecraft.webmagic.selector.Html
;
import
us.codecraft.webmagic.selector.Selectable
;
import
us.codecraft.webmagic.utils.DBUtils
;
import
java.sql.DriverManager
;
import
java.util.List
;
public
class
Mobils
{
public
static
final
List
<
String
>
models
=
Lists
.
newArrayList
(
"iphone"
,
"oppoa57"
,
"oppor9s"
,
"huawei nxt-al10"
,
"vivox9"
,
"oppo r9s"
,
"oppoa59s"
,
"oppo r9m"
,
"vivoy66"
,
"oppoa37m"
,
"oppor9m"
,
"oppo a37m"
,
"vivox7"
,
"lex620"
,
"oppo a33"
,
"oppor11"
,
"mi 4lte"
,
"oppoa33"
,
"vivoy51"
,
"redminote4x"
,
"mi 5"
,
"vivoy51a"
,
"oppo a59m"
,
"redminote3"
,
"huawei tag-al00"
,
"mha-al00"
,
"oppor9tm"
,
"le x620"
,
"oppor9sk"
,
"oppo r9tm"
,
"oppoa59m"
,
"oppo a59s"
,
"vivox20a"
,
"gn5001s"
,
"huawei mla-al10"
,
"huawei rio-al00"
,
"oppor9splus"
,
"vivoy55a"
,
"vivox7plus"
,
"oppo a57"
,
"vivoy67"
,
"vivoy67a"
,
"oppo r7"
,
"vivoy66l"
,
"oppoa57t"
,
"vivov3maxa"
,
"bln-al10"
,
"oppo r7s"
,
"vivox9plus"
,
"oppo a33m"
,
"huaweinxt-al10"
,
"huaweimla-al10"
,
"oppo r7sm"
,
"letvx500"
,
"m5note"
,
"redminote4"
,
"huawei mt7-tl10"
,
"vivox6d"
,
"oppor11s"
,
"m3 note"
,
"oppor11t"
,
"hm 2a"
,
"redmi4a"
,
"huawei tag-tl00"
,
"vivox9s"
,
"redminote2"
,
"huawei mt7-cl00"
,
"oppoa33m"
,
"pra-al00x"
,
"redmi4x"
,
"huawei caz-al10"
,
"redmi 3s"
,
"frd-al10"
,
"vivov3ma"
,
"mi6"
,
"pra-al00"
,
"vivox9i"
,
"huawei nxt-tl00"
,
"mi5"
,
"bln-al40"
,
"mi5x"
,
"letvx501"
,
"mi max"
,
"vivoy67l"
,
"duk-al20"
,
"huawei mt7-tl00"
,
"redmi 3"
,
"huaweitag-al00"
,
"a31"
,
"huawei tit-al00"
,
"trt-al00a"
,
"letv x500"
,
"m2 note"
,
"eva-al10"
,
"m3note"
,
"vivox6sa"
,
"huawei vns-al00"
,
"mi4lte"
,
"zh-cn;"
,
"vtr-al00"
,
"vivoy31a"
,
"redmi3s"
,
"oppo r9sk"
,
"hmnote1lte"
,
"oppor7sm"
,
"huaweicaz-al10"
,
"m1 metal"
,
"vivox9l"
,
"stf-al10"
,
"was-al00"
,
"oppor7s"
,
"m5 note"
,
"mimax"
,
"m5"
,
"ipad"
,
"gn8003"
,
"m2note"
,
"nem-al10"
,
"samsung sm-g9350"
,
"cam-tl00"
,
"oppo a53"
,
"oppoa77"
,
"hmnote1s"
,
"mi 5s"
,
"bnd-al10"
,
"oppo a53m"
,
"redminote5a"
,
"mi 3"
,
"redmi3"
,
"cam-al00"
,
"oppor7"
,
"huawei gra-tl00"
,
"gn5005"
,
"oppoa37t"
,
"vivoy55"
,
"bac-al00"
,
"huaweirio-al00"
,
"dig-al00"
,
"vky-al00"
,
"hm note 1s"
,
"vivox9splus"
,
"kiw-al10"
,
"huawei tit-tl00"
,
"letv x501"
,
"vivox20"
,
"f100"
,
"nxt-al10"
,
"vivoy31"
,
"mimax2"
,
"sm-g9350"
,
"gionees10"
,
"huaweitag-tl00"
,
"redmi 4"
,
"2014813"
,
"oppoa53"
,
"sla-al00"
,
"oppor9st"
,
"huawei gra-ul10"
,
"vivox6a"
,
"minotelte"
,
"f100l"
,
"m1metal"
,
"cun-al00"
,
"m3"
,
"vivoy55l"
,
"gn8002s"
,
"hm2a"
,
"huawei p7-l07"
,
"f100s"
,
"frd-al00"
,
"huawei crr-ul00"
,
"vivox5prod"
,
"vivox9sl"
,
"vivoy23l"
,
"huawei vns-tl00"
,
"vivox5m"
,
"s9"
,
"m1 note"
,
"lephonet7+"
,
"vivoy35"
,
"huawei nxt-dl00"
,
"vivov3"
,
"vivoxplay5a"
,
"eva-al00"
,
"huawei gra-ul00"
,
"redmi4"
,
"m3s"
,
"f103"
,
"oppor11plus"
,
"oppoa53m"
,
"r7plusm"
,
"vivox6plusd"
,
"gn5003"
,
"mi-4c"
,
"samsung sm-a7000"
,
"trt-al00"
,
"googlebot"
,
"gn3003"
,
"bln-al20"
,
"huawei gra-cl00"
,
"lephonet7a"
,
"huaweitit-al00"
,
"huawei g750-t01"
,
"stf-al00"
,
"oppor11st"
,
"vie-al10"
,
"dli-al10"
,
"samsung sm-g9280"
,
"coolpady803-9"
,
"huawei g7-tl00"
,
"lex820"
,
"huawei ale-cl00"
,
"bln-tl10"
,
"samsung sm-c5000"
,
"gn9010"
,
"hm 1s"
,
"m6note"
,
"huawei rio-tl00"
,
"minote3"
,
"redmi5plus"
,
"kiw-tl00"
,
"alp-al00"
,
"huaweivns-al00"
,
"plk-al10"
,
"le x820"
,
"mx5"
,
"huawei rio-ul00"
,
"lon-al00"
,
"m5s"
,
"cun-tl00"
,
"mi 3s"
,
"m1e"
,
"oppo r9km"
,
"gionees10l"
,
"gn8001"
,
"m1 e"
,
"f5"
,
"scl-tl00"
,
"4g"
,
"lex520"
,
"vivox6splusd"
,
"1501_m02"
,
"huaweitit-tl00"
,
"lex528"
,
"mi5s"
,
"vivoxplay6"
,
"m2"
,
"samsung sm-a5000"
,
"gn5005l"
,
"vivoy37"
,
"oppoa77t"
,
"mi 2"
,
"vivoy53"
,
"vivoy33"
,
"mi5splus"
,
"1605-a01"
,
"vivoy35a"
,
"kiw-tl00h"
,
"samsung sm-a8000"
,
"scl-al00"
,
"oppor9km"
,
"ath-al00"
,
"mx4 pro"
,
"pic-al00"
,
"sm-c5000"
,
"samsung sm-c7000"
,
"m651cy"
,
"huawei p7-l09"
,
"m2e"
,
"jmm-al00"
,
"r7plus"
,
"sm-c7000"
,
"oppo r7splus"
,
"huaweimt7-tl10"
,
"sm-g9280"
,
"m1note"
,
"trt-tl10a"
,
"r8207"
,
"mya-al10"
,
"oppor7splus"
,
"che-tl00h"
,
"mx6"
,
"samsung sm-g9200"
,
"chm-tl00h"
,
"f106"
,
"huawei g7-ul20"
,
"samsung sm-g9250"
,
"gionees10cl"
,
"plk-tl01h"
,
"gn3001"
,
"redmi 4a"
,
"knt-al10"
,
"redmi pro"
,
"oppor11pluskt"
,
"sm-g9250"
,
"f105"
,
"huawei nxt-cl00"
,
"mla-al10"
,
"nce-al10"
,
"bkl-al20"
,
"sm-a7000"
,
"rio-al00"
,
"huaweinxt-tl00"
,
"oppor11splus"
,
"1505-a01"
,
"rne-al00"
,
"vivox9plusl"
,
"mix2"
,
"edi-al10"
,
"redmi 3x"
,
"scl-tl00h"
,
"eva-tl00"
,
"h60-l01"
,
"mi 3w"
,
"x600"
,
"xiaomihm2a"
,
"cam-tl00h"
,
"huawei p8max"
,
"pra-tl10"
,
"gionees10c"
,
"gn9012"
,
"vivoy27"
,
"vivoy51tl"
,
"hwi-al00"
,
"lex621"
,
"hisense m20-t"
,
"mts-t0"
,
"vivoy66ia"
,
"sm-g9550"
,
"knt-al20"
,
"bla-al00"
,
"lex626"
,
"le x528"
,
"1607-a01"
,
"mi 2s"
,
"vivox5sl"
,
"chm-tl00"
,
"mi 3c"
,
"konkad6+"
,
"vivox20plusa"
,
"vivox6plusa"
,
"trt-tl10"
,
"gioneem7"
,
"redmipro"
,
"gn5001"
,
"c106-9"
,
"vivox5max+"
,
"2014501"
,
"vivoy53l"
,
"che1-cl10"
,
"jmm-al10"
,
"vivoy13l"
,
"huawei tit-cl10"
,
"vivoy75a"
,
"oppoa79"
,
"vivox6l"
,
"huawei c199"
,
"sm-j5008"
,
"mi2"
,
"oneplus a3000"
,
"che1-cl20"
,
"sla-tl10"
,
"f100a"
,
"zteba510"
,
"sm-a8000"
,
"pro 5"
,
"huaweivns-tl00"
,
"pro 6"
,
"vivoy79a"
,
"oneplus a3010"
,
"oppor11plusk"
,
"lenovo k30-t"
,
"gioneegn5007"
,
"ck3-01"
,
"mi3"
,
"samsung sm-g5500"
,
"oppoa73"
,
"a51"
,
"go n3s"
,
"oppoa59st"
,
"od103"
,
"coolpad8722v"
,
"mi 4c"
,
"lex720"
,
"bestsonnylt999"
,
"hm1s"
,
"4g+"
,
"nce-al00"
,
"coolpady91-921"
,
"vivoy13il"
,
"20161220"
,
"sm-g5500"
,
"sm-a5000"
,
"nexus 4"
,
"dig-tl10"
,
"mz-m3 note"
,
"oppoa83"
,
"sm-g9500"
,
"huaweimt7-cl00"
,
"samsung sm-a7100"
,
"huaweimt7-tl00"
,
"sm-c9000"
,
"redmi3x"
,
"kiw-ul00"
,
"ob-oppo a31c"
,
"redmi5a"
,
"a31c"
,
"kopol9"
,
"m623c"
,
"xiaomimi4lte"
,
"koobees301t"
,
"gt-n7100"
,
"minotepro"
,
"sm-n9006"
,
"chm-cl00"
,
"knt-ul10"
,
"c106"
,
"che-tl00"
,
"oneplusa5000"
,
"ale-ul00"
,
"vivoy66i"
,
"1107"
,
"sm-g6000"
,
"a11"
,
"mt7-cl00"
,
"sm-j7008"
,
"m571c"
,
"huaweigra-ul10"
,
"mx4"
,
"minote2"
,
"xiaomi2014813"
,
"huaweigra-tl00"
,
"huawei b199"
,
"xiaomimi3"
,
"1503-a01"
,
"che2-tl00m"
,
"ale-tl00"
,
"m621c"
,
"xiaomi2014501"
,
"g621-tl00"
,
"zh-cn;gionee-gn5001s/gn5001s"
,
"cam-ul00"
,
"sm-a9000"
,
"coolpadb770"
,
"gn9011"
,
"sm-g9200"
,
"m6"
,
"samsung sm-a9000"
,
"bnd-al00"
,
"chm-ul00"
,
"lex622"
,
"huawei vns-dl00"
,
"was-tl10"
,
"r7007"
,
"huawei eva-al10"
,
"eva-dl00"
,
"fig-al10"
,
"sm-n9008v"
,
"pe-tl10"
,
"hisense m30"
,
"pe-tl20"
,
"huaweirio-tl00"
,
"huaweirio-ul00"
,
"sm-g5308w"
,
"scl-cl00"
,
"zteba601"
,
"che2-tl00"
,
"a31t"
,
"2014811"
,
"huawei crr-cl00"
,
"vivox3l"
,
"2014011"
,
"nem-tl00"
,
"sm-n9100"
,
"8676-a01"
,
"mi5c"
,
"huaweicrr-ul00"
,
"gn8003l"
,
"sm-a7100"
,
"sm-g900p"
,
"bac-tl00"
,
"che2-ul00"
,
"huawei cun-al00"
,
"mi3w"
,
"samsung sm-g9300"
,
"nce-tl10"
,
"mz-m1 metal"
,
"gionees10bl"
,
"gionees10b"
,
"mt7-tl00"
,
"gn9006"
,
"vivox5l"
,
"mt7-tl10"
,
"bln-al30"
,
"pro6"
,
"mx4pro"
,
"hw-pe-cl00"
,
"huaweinxt-dl00"
,
"koobees305m"
,
"samsung sm-n9100"
,
"dli-tl20"
,
"koobees106m"
,
"huawei c199s"
,
"gioneem7l"
,
"huaweip8max"
,
"lephonet9+"
,
"android7.0;mha-al00"
,
"zukz2131"
,
"lephonet6+v"
,
"oppoa79t"
,
"1711-a01"
,
"m1"
,
"lephonet10"
,
"3007"
,
"yl-coolpad8722v"
,
"nx549j"
,
"gn8002"
,
"en-us; sm-n900t"
,
"1603-a03"
,
"hw-huawei ale-cl00"
,
"nx531j"
,
"nx529j"
,
"nem-ul10"
,
"nem-tl00h"
,
"1505-a02"
,
"gn3002"
,
"zh-cn;mha-al00"
,
"gn152"
,
"le x520"
,
"1501-a02"
,
"zh-cn;gionee-f100l/f100l"
,
"zh-cn;oppor9s"
,
"huawei caz-tl10"
,
"bnd-tl10"
,
"zh-cn;gionee-f100/f100"
,
"zh-cn;vivox9"
,
"mi 4s"
,
"doovv11"
,
"zh-cn;vivox7"
,
"r2017"
,
"huawei sc-ul10"
,
"m653"
,
"mi pad"
,
"xiaomiredmi3"
,
"zteba610t"
,
"sm-g9008v"
,
"vivoy79"
,
"samsung sm-g6000"
,
"gioneegn5007l"
,
"pro5"
,
"mz-m2 note"
,
"mz-m5 note"
,
"vivoy75"
,
"mi 4w"
,
"huaweivns-dl00"
,
"oppor9plusma"
,
"sm-j3119"
,
"iphone 6"
,
"u20"
,
"x9007"
,
"sm-j3110"
,
"ob-oppo r7c"
,
"huaweitit-cl10"
,
"sm-j3109"
,
"x900+"
,
"kopot9"
,
"8676-m01"
,
"kopol6"
,
"samsung sm-n9200"
,
"mix"
,
"xiaomimi2s"
,
"huaweip7-l07"
,
"t1"
,
"vtr-tl00"
,
"vivoy37a"
,
"sm-n9500"
,
"kiw-cl00"
,
"xiaomimi-4c"
,
"huaweimla-tl10"
,
"zh-cn;mi6"
,
"huawei gra-cl10"
,
"oneplusa5010"
,
"mediapad"
,
"oneplusa3010"
,
"vivoy29l"
,
"m3max"
,
"android4.4.4;a31"
,
"vivoy28l"
,
"mi 2sc"
,
"kingsun-f9"
,
"os105"
,
"ple-703l"
,
"le x621"
,
"sm-n9200"
,
"xiaomihm1s"
,
"vivoy13"
,
"honor h30-l01"
,
"zh-cn;gem-703l"
,
"zteba910"
,
"coolpady803-8"
,
"hmnote1td"
,
"huawei mla-al00"
,
"coolpady72-921"
,
"kopo l9"
,
"sm-g9300"
,
"huaweigra-ul00"
,
"vivoxplay3s"
,
"huawei c8818"
,
"galaxynexus"
,
"2014812"
,
"huaweig750-t01"
,
"oppor9t"
,
"oppor9splust"
,
"galaxy nexus"
,
"h60-l03"
,
"mp1602"
,
"android7.0;eva-al10"
,
"oppor9skt"
,
"huaweig7-tl00"
,
"lld-al10"
,
"yuflyf9"
,
"zteba520"
,
"huawei mla-tl00"
,
"android7.0;frd-al10"
,
"zh-cn;mz-m5note"
,
"vivox710l"
,
"mi4s"
,
"lenovo a2580"
,
"samsungsm-g9350"
,
"vivox6plusl"
,
"mi3c"
,
"huaweicaz-tl10"
,
"iphone 5sglobal"
,
"coolpad8675-a"
,
"xiaomi2014011"
,
"nexus6"
,
"sm-n9009"
,
"vivox5prov"
,
"r831s"
,
"sm-n9002"
,
"hisensef22"
,
"huaweiale-cl00"
,
"gra-ul10"
,
"lephonew7+"
,
"rio-tl00"
,
"oppoa83t"
,
"coolpad8737"
,
"pro6plus"
,
"sugary9"
,
"pro6s"
,
"lenovo k50-t5"
,
"android7.0;bln-al10"
,
"zh-cn;oppor11"
,
"oppoa30"
,
"iphone 6p"
,
"bft26"
,
"votogt11pro"
,
"lephone t6+v"
,
"zh-cn;oppoa57"
,
"zteba603"
,
"lephonet708v"
,
"android4.4.4;2014813"
,
"r8007"
,
"sm-n9008s"
,
"lephone t7+"
,
"iphone 6s"
,
"plk-ul00"
,
"lenovok30-t"
,
"huaweigra-cl00"
,
"vivoy937"
,
"nx523j_v1"
,
"pro7-s"
,
"frd-dl00"
,
"android5.1.1;r7plusm"
,
"m3x"
,
"vivov3max"
,
"zh-cn;duk-al20"
,
"lex625"
,
"samsung sm-c9000"
,
"votogt07"
,
"lenovoa3860"
,
"huawei rio-cl00"
,
"wp"
,
"lenovo a320t"
,
"zh-cn;huaweimla-al10"
,
"lenovoa7600-m"
,
"aloes"
,
"oneplusa3000"
,
"oysinmx7"
,
"sm-g9208"
,
"huawei g628-tl00"
,
"android6.0;cam-al00"
,
"vivoy913"
,
"sm-a9100"
,
"hisense m30t"
,
"u10"
,
"m821"
,
"x9"
,
"coolpady82-520"
,
"od105"
,
"ztebv0701"
,
"1603-a02"
,
"s2"
,
"nx541j"
,
"lovme-t23"
,
"hisense f22"
,
"m611d"
,
"btv-w09"
,
"honor h30-l01m"
,
"sm-a5100"
,
"c8817d"
,
"mi 3x"
,
"btv-dl09"
,
"mi 4a"
,
"coolpad5270"
,
"sm-g7200"
,
"vivoy923"
,
"sm-g6100"
,
"huawei sc-cl00"
,
"android6.0;nem-al10"
,
"zh-cn;huaweinxt-al10"
,
"sm-c7010"
,
"nexus 5"
,
"h60-l11"
,
"m57ac"
,
"huawei c8816"
,
"xiaomimi5"
,
"sop-n1"
,
"yepen"
,
"sm-g5510"
,
"vivox6splusa"
,
"f106l"
,
"coolpady75"
,
"android5.1;gn5001s"
,
"got5"
,
"w909"
,
"mya-tl10"
,
"1503-m02"
,
"mi4w"
,
"oppo a30"
,
"sch-i939"
,
"zteba611t"
,
"zh-cn;frd-al10"
,
"hm-i506-tl"
,
"huaweinxt-cl00"
,
"lenovo a360t"
,
"stf-tl10"
,
"koobees106"
,
"plk-tl00"
,
"htc d816t"
,
"8298-m02"
,
"sm-j5108"
,
"nx563j"
,
"zh-cn;vivox20a"
,
"20151209t"
,
"vivoy18l"
,
"mi4c"
,
"oppoa73t"
,
"nx569h"
,
"sm-g7106"
,
"oppoa33t"
,
"m631"
,
"huawei eva-al00"
,
"samsung sm-a9100"
,
"xiaomi2014812"
,
"m578c"
,
"sm-g9008w"
,
"sm-g7508q"
,
"lenovo a3800-d"
,
"xiaomi2014811"
,
"lephonet11"
,
"huaweicaz-tl20"
,
"h60-l02"
,
"mp1503"
,
"zh-cn;mz-m2note"
,
"zukz2121"
,
"huaweig7-ul20"
,
"r7c"
,
"x7"
,
"2014112"
,
"samsung sm-a5100"
,
"pe-cl00"
,
"huawei p7-l00"
,
"ztebv0730"
,
"oppo r9st"
,
"m6splus"
,
"bestsonnylt558"
,
"v183"
,
"huawei c8816d"
,
"s9l"
,
"yq601"
,
"oppo r9t"
,
"lephonet16"
,
"zukz1"
,
"coolpad8675"
,
"gn5002"
,
"x800"
,
"rv:52.0) gecko"
,
"ma5"
,
"nxt-tl00"
,
"lephonew9"
,
"zh-cn;gionee-gn8003/gionee-gn8003"
,
"zh-cn;oppor9m"
,
"lenovo a3860"
,
"zh-cn;mz-m1metal"
,
"sm-n9008"
,
"lld-al00"
,
"zh-cn;gionee-gn5005/gionee-gn5005"
,
"gra-tl00"
,
"c106-8"
,
"gra-cl00"
,
"mha-tl00"
,
"a0001"
,
"coolpad9190l"
,
"m636"
,
"sm-t805c"
,
"xiaomimi2sc"
,
"koobees302m"
,
"uoogou"
,
"n5207"
,
"ta-1000"
,
"8681-m02"
,
"ob-oppo 1105"
,
"hisensem20-t"
,
"lephonet2v"
,
"huawei c8817e"
,
"duk-tl30"
,
"sm-n9108v"
,
"r6007"
,
"sm-t715c"
,
"samsung sm-j5008"
,
"android4.4.4;2014811"
,
"1801-a01"
,
"vivox20plus"
,
"zh-cn;mi5"
,
"redmi5"
,
"lenovok50-t5"
,
"gt-i9500"
,
"a31u"
,
"huaweimla-al00"
,
"hw-huawei y635-cl00"
,
"oppor11splust"
,
"r8107"
,
"coolpad8297-t01"
,
"hw-huawei p7-l09"
,
"oppoa79k"
,
"huaweip7-l09"
,
"oppo a37t"
,
"xiaomi2013022"
,
"vivox5v"
,
"vivoy22l"
,
"huawei y560-cl00"
,
"zh-cn;mz-m3note"
,
"p7-l07"
,
"pe-tl00m"
,
"mz-y685c"
,
"vivox9splusl"
,
"p7-l09"
,
"2013022"
,
"6607"
,
"pic-tl00"
,
"android5.1;sm-j5008"
,
"konka509"
,
"n5117"
,
"yusuna9"
,
"gn151"
,
"android5.1;gn3003"
,
"zh-cn;gionee-gn5003/gionee-gn5003"
,
"sm-t555c"
,
"samsung-sm-n9009"
,
"ivvif2-t"
,
"mipad"
,
"sm-t550"
,
"gem-703l"
,
"samsung sm-n9008v"
,
"vivox7l"
,
"vivoy927"
,
"8692-a00"
,
"w900s"
,
"doova8"
,
"huaweib199"
,
"q7"
,
"note4x"
,
"gionee-gn5003/gionee-gn5003"
,
"hm 1sc"
,
"m621c-s"
,
"sm-a7108"
,
"asus_z012da"
,
"hw-huawei c199"
,
"vivos7i(t)"
,
"huaweitag-cl00"
,
"asus_z00ld"
,
"hw-huawei c8816"
,
"8681-a01"
,
"android5.1.1;h60-l01"
,
"jxd-t55"
,
"zh-cn;vie-al10"
,
"g750-t01"
,
"mi2sc"
,
"p1"
,
"vivoy613f"
,
"vivoy928"
,
"htcone801e"
,
"xt1650-05"
,
"huawei y635-cl00"
,
"hw-huawei c8818"
,
"zh-cn;oppor11s"
,
"gt-n7108"
,
"ax9"
,
"coolpady71-711"
,
"gionees11"
,
"lenovoa3910t30"
,
"lenovoz90-7"
,
"hm1sw"
,
"goc3"
,
"android6.0.4;sm-n920g"
,
"s6"
,
"vivoy627"
,
"huawei y635-tl00"
,
"lenovoa708t"
,
"samsungsm-a8000"
,
"lenovoz90-3"
,
"htcd816t"
,
"coolpad5360"
,
"zh-cn;oneplusa5000"
,
"huaweiy560-cl00"
,
"f3115"
,
"android6.0;la-x7"
,
"tetc-v5"
,
"doova11"
,
"y51a"
,
"gt-n7102"
,
"mz-mx4"
,
"android6.0.1;nx531j"
,
"android7.0;sm-g9308"
,
"x900"
,
"kopol7"
,
"lenovo a2800-d"
,
"android6.0;dig-tl10"
,
"htcd816w"
,
"lephone t2v"
,
"samsungsm-n9006"
,
"kopol1"
,
"gt-i9082i"
,
"yoordp8"
,
"zh-cn;lex620"
,
"auxt5100l"
,
"hisensee76"
,
"votogt2017"
,
"md6"
,
"m463c"
,
"votogt7"
,
"huawei vie-al10"
,
"zh-cn;gionee-gionee_s10/s10"
,
"sch-i679"
,
"kopok33"
,
"android6.0.1;sm-g9200"
,
"ob-oppor7c"
,
"sm-g9009d"
,
"android6.0.1;nx549j"
,
"kopok11"
,
"coolpad8720l_cmcc_td"
,
"android6.0.4;sm-n910g"
,
"et600"
,
"xiaomimi3w"
,
"g0215d"
,
"android4.4.4;c8817d"
,
"yl-coolpad5360"
,
"f3"
,
"samsungsm-a9000"
,
"sch-i869"
,
"a7"
,
"android5.1;x5"
,
"android4.4.3;4g-plus"
,
"zh-cn;vivoy66"
,
"best_sonny_lt533"
,
"android5.1;zh-cn;gionee-gn9010/gn9010"
,
"bkl-al00"
,
"lenovoa688t"
,
"boway_x6"
,
"samsungsm-j5008"
,
"xiaomimi3c"
,
"android6.0;m5"
,
"vivoy53n"
,
"hw-huawei gra-cl00"
,
"samsungsm-c5000"
,
"android6.0;coolpad8297"
,
"huaweisc-ul10"
,
"sm-g930f"
,
"sop-n9"
,
"n09"
,
"hw-huawei mt7-cl00"
,
"android5.1;1501-a02"
,
"zh-cn;oppor11t"
,
"t1-823l"
,
"android5.1.1;sm-n9100"
,
"gionee-f5/f5"
,
"lenovos60-t"
,
"huaweiy635-cl00"
,
"la-s1"
,
"lenovoa3910e70"
,
"doovl5m"
,
"android5.1;m5"
,
"android6.0;zh_cn;x600"
,
"t1-821w"
,
"mytel"
,
"hlj-xm-e"
,
"huaweig730-u00"
,
"android5.1;wp-s"
,
"sm-a7009"
,
"2014821"
,
"r821t"
,
"g628-tl00"
,
"sm-g7109"
,
"huaweig610-t00"
,
"android4.4.2;che2-ul00"
,
"gt-i9508v"
,
"p9"
,
"lenovo k32c36"
,
"android7.0;eva-al00"
,
"samsungsm-c7000"
,
"huaweiy635-tl00"
,
"lenovo k50-t3s"
,
"android6.0.1;kiw-al10"
,
"android4.4.4;6607"
,
"android6.0.1;sm-c5010"
,
"sm-n9150"
,
"huaweirio-cl00"
,
"rlt"
,
"coolpad8908"
,
"android5.1.1;sm-a7100"
,
"ivviv1"
,
"android5.1.1;scl-tl00h"
,
"android5.1.1;jxd"
,
"sm-c5010"
,
"xx-xx;pe-tl20"
,
"xiaomiredmi3s"
,
"doovl8plus"
,
"sm-t231"
,
"lenovoa355e"
,
"doovl9"
,
"nexus 5x"
,
"gt-i9508"
,
"coolpad8105"
,
"3005"
,
"s8-701u"
,
"vivoy51n"
,
"hw-kiw-cl00"
,
"sm-g9009w"
,
"android5.1;a1p"
,
"u16"
,
"lenovo k51c78"
,
"zh-cn;mz-mx6"
,
"oukip2"
,
"coolpady71-511"
,
"android5.0.2;plk-al10"
,
"gra-cl10"
,
"lenovox3c50"
,
"bowayu12"
,
"birdl902"
,
"iph8"
,
"android5.1;8681-m02"
,
"hw-huaweitag-cl00"
,
"huawei m2-801w"
,
"zh-cn;vtr-al00"
,
"doovl9mini"
,
"huawei m2-803l"
,
"hs-hisensef20t"
,
"android5.1;full_hct6753_35gc_l1"
,
"coolpady83-i00"
,
"t1-701u"
,
"sm-e7009"
,
"android6.0.1;sm-g9300"
,
"android6.0;gn5005l"
,
"huawei a199"
,
"android5.1;w900s"
,
"xiaomiredmi4"
,
"xiaomimi2a"
,
"v3"
,
"a33"
,
"lenovoa7600"
,
"doovm1t"
,
"android4.4.4;a11"
,
"android6.0;knt-al20"
,
"x17.0"
,
"x7plus"
,
"samsungsm-c9000"
,
"doovm2"
,
"h9s"
,
"android5.1;x6"
,
"gionee-gn9010/gn9010"
,
"e6853"
,
"gt-i9502"
,
"la-s35"
,
"hisense e70-t"
,
"sm-w2015"
,
"m681c"
,
"onea2001"
,
"k-touch2a"
,
"htc m8st"
,
"zh-cn;vivox9l"
,
"gra-ul00"
,
"goc1"
,
"sm-g7108v"
,
"coolpad8017-t00"
,
"android5.1;hlj-gm-q1"
,
"android4.4.2;sm-n900"
,
"eyut5"
,
"zh-cn;k-touchh2"
,
"k10e70"
,
"htc_d728x"
,
"huaweip6-c00"
,
"android4.4.2;x9007"
,
"doovl3)applewebkit"
,
"vk7plus"
,
"m355"
,
"c1"
,
"htc m8t"
,
"android5.1.1;u22"
,
"android5.1;uoogou"
,
"xiaomimi2"
,
"lenovos898t"
,
"lenovox2-to"
,
"oysinx5"
,
"yl-coolpady72-921"
,
"sastsa9"
,
"gt-s7562c"
,
"k-touchx7"
,
"android4.3;gt-i9158v"
,
"android4.4.4;sm-g5309w"
,
"xiaomiredmi4a"
,
"coolpad7296"
,
"m3 max"
,
"zh-cn;gionee-gn9012/gn9012"
,
"m199"
,
"sintaves1000"
,
"android5.0.2;m821"
,
"android6.0;c1"
,
"uoogout10"
,
"gionee-gn5001/gn5001"
,
"p8max"
,
"noainx9v"
,
"nx512j"
,
"android4.4.2;sm-g9008v"
,
"huaweip7-l00"
,
"huaweig6-c00"
,
"6000"
,
"a525"
,
"lenovo p1c72"
,
"noainx9plus"
,
"y09"
,
"vivox710f"
,
"hisensef30"
,
"koomii-k8"
,
"android6.0;m361"
,
"zh-cn;gionee-gn8002s/gionee-gn8002s"
,
"lenovos820"
,
"noainx9"
,
"android7.0;trt-al00"
,
"lenovop70-t"
,
"lovme-t17"
,
"android4.4.4;sk1-02"
,
"gn9000l"
,
"koomii-k19"
,
"coolpad7105"
,
"zh-cn;mz-mx5"
,
"x9077"
,
"lenovok32c30"
,
"xt1635-03"
,
"asus_x008"
,
"sk3-01"
,
"android4.4.2;chm-tl00"
,
"gionee-gn8001/gn8001"
,
"gt-s7572"
,
"8298-a01"
,
"lphone6splus"
,
"sch-i619"
,
"android4.4.4;2014112"
,
"oppor7plus"
,
"u5483"
,
"r3"
,
"coolpad5380ca"
,
"oppo a33t"
,
"android5.0.2;x600"
,
"meizu3slet"
,
"lenovoa3900"
,
"vivox5maxs"
,
"lenovo p70-t"
,
"android5.1;??"
,
"sm-g900f"
,
"android6.0.1;sm-j7108"
,
"x909t"
,
"a1601"
,
"android5.0;sm-n9005"
,
"zteq529t"
,
"android5.1;mz-m3"
,
"asus_x002"
,
"g115"
,
"android6.0.1;m836"
,
"owwo1s"
,
"coolpad7320"
,
"birdd10"
,
"lenovok52e78"
,
"sch-p709"
,
"gt-i9300i"
,
"android5.1;t1"
,
"android6.0;asus_x008"
,
"ob-oppo1105"
,
"r5"
,
"huawei+nxt-al10"
,
"r831t"
,
"huawei mla-tl10"
,
"android5.1.1;sm-w2016"
,
"android4.4.4;sm-g8508s"
,
"huaweicrr-ul20"
,
"coolpad9976t"
,
"s3"
,
"android6.0;sm-a7108"
,
"lenovop1c72"
,
"d51732"
,
"yl-coolpadck2-01"
,
"zh-cn;yl-coolpad5263"
,
"sm-c7100"
,
"koobees9"
,
"huawei mla-ul00"
,
"android5.1;ck3-01"
,
"gt-i9300"
,
"la-x7"
,
"android4.4.4;4g"
,
"android5.0.2;f103l"
,
"coolpad8717"
,
"tetc-f5"
,
"android7.0;btv-w09"
,
"haipainobles6"
,
"lenovop1c58"
,
"coolpadv1-c"
,
"sm-g9006w"
,
"coolpad7251"
,
"gt-i8268"
,
"y07"
,
"android5.1.1;scl-tl00"
,
"zh-cn;pra-al00x"
,
"e6653"
,
"huaweiy523-l176"
,
"android6.0;u10"
,
"android5.1;r7kf"
,
"lenovok3"
,
"g123"
,
"lenovoa320t"
,
"zh-cn;redmi4"
,
"k-touchx11"
,
"gt-i9507v"
,
"coolpad7605"
,
"vivoy613"
,
"gionee-f100a/f100a"
,
"zh-cn;bln-al40"
,
"doovl5pro"
,
"gem-703lt"
,
"sm-a5108"
,
"hisense f20t"
,
"android5.1;m3"
,
"android5.0.1;gt-i9508"
,
"xiaomimi4c"
,
"lenovoa5500"
,
"2016088"
,
"coolpad5952"
,
"android5.0;sm-g9009w"
,
"zh-cn;gionee-gionee_s10c/s10c"
,
"birdl5"
,
"koobees305"
,
"huawei mt2-l01"
,
"android4.3;gt-n7100"
,
"yl-coolpad5263s"
,
"xshitoup7"
,
"sm-w2014"
,
"scl-tl00_td"
,
"konka d557"
,
"android5.1;m571c"
,
"huaweinem-tl00"
,
"n1"
,
"noainx15"
,
"u19"
,
"i7"
,
"android6.0;1505-a01"
,
"android5.1.1;nx523j_v1"
,
"sm-n7508v"
,
"android4.3;r2017"
,
"g13"
,
"android5.0.1;gt-i9508v"
,
"mipad3"
,
"nts-al00"
,
"coolpad8730l"
,
"mipad2"
,
"laaboov9"
,
"x608"
,
"bf_a500"
,
"android4.4.4;2014812"
,
"zh-cn;gionee-gionee_s10cl/s10cl"
,
"coolpadb770s"
,
"kingsun-f"
,
"doovv15"
,
"android6.0.1;c106-6"
,
"zh-cn;sm-g9550"
,
"r830s"
,
"bm006"
,
"huawei c8813q"
,
"android5.1;la-s5"
,
"android4.4.2;sm-n9009"
,
"nx508j"
,
"4gvolte"
,
"lephonef1"
,
"android7.0;vky-al00"
,
"android6.0.1;c106-7"
,
"zh-cn;gionee-gionee_s10l/s10l"
,
"xiaomimi4s"
,
"h30-c00"
,
"p6-c00"
,
"sch-i699i"
,
"coolpad8297-c00"
,
"oppo r7st"
,
"hs-hisensef22"
,
"lovme-t26"
,
"y51"
,
"mz-mx5"
,
"oppo r7t"
,
"android6.0.1;sm-g9250"
,
"android6.0.1;c1530l"
,
"android6.0;scale"
,
"samsung-sch-i959"
,
"android6.0;y21"
,
"yl-coolpad8675-a"
,
"lovme-t19"
,
"coolpad8721"
,
"android4.4.4;w900"
,
"zh-cn;1605-a01"
,
"noaint01"
,
"gm"
,
"bf_t20"
,
"birdl802"
,
"huawei c8815"
,
"xt1710-08"
,
"zh-cn;pra-al00"
,
"huaweimt2-l01"
,
"huawei mt7-ul00"
,
"samsung sm-g9006v"
,
"vivoy17w"
,
"noainr9s"
,
"f8332"
,
"koobees103"
,
"android5.1.1;chm-tl00"
,
"k30-t"
,
"lovme-t16"
,
"huaweisc-cl00"
,
"y71-511"
,
"4lte"
,
"lenovoa368t"
,
"android4.4.4;a31c"
,
"coolpad8729_cmcc_td"
,
"laaboov3"
,
"hht6a"
,
"koobeem9"
,
"mz-m3s"
,
"lenovo s60-t"
,
"android5.1;cun-tl00"
,
"android5.1.1;ath-al00"
,
"honorh30-l01m"
,
"coolpads6-nt1"
,
"huawei nce-al10"
,
"android4.4.2;che-tl00"
,
"mz-mx4pro"
,
"doovv3"
,
"note4"
,
"r8000"
,
"x7(20160103)"
,
"android6.0;plk-tl01h"
,
"android4.4.2;h60-l11"
,
"hw-huaweic8818"
,
"honorh30-l01"
,
"android4.4;g621-tl00"
,
"sensation"
,
"huaweimla-ul00"
,
"samsung-sm-a5009"
,
"mz-m6note"
,
"y685c"
,
"lephonet708s"
,
"vivox5prol"
,
"samsung-sm-a7009"
,
"huaweieva-al10"
,
"huaweimla-tl00"
,
"a165"
,
"sk1-02"
,
"kingsun-f4"
,
"mozilla"
,
"sm-n7506v"
,
"sm-n9005"
,
"huawei nem-tl00"
,
"android6.0.1;ath-cl00"
,
"samsungsm-g930f"
,
"gm-q5+"
,
"gn3002l"
,
"s120"
,
"gt-i9158v"
,
"nexus 6"
,
"huaweic8813q"
,
"note1s"
,
"hd1"
,
"samsung"
,
"doovv5"
,
"ztec880s"
,
"android5.1;m578ca"
,
"android4.4.4;uoogou"
,
"samsungsm-g935f"
,
"lgtd-x3l"
,
"coolpad5263"
,
"zh-cn;vivoy67"
,
"samsung-sm-g7108v_td release"
,
"zh-cn; ãã"
,
"android6.0.1;zh_cn;lex720"
,
"zh-cn;vivoy67a"
,
"note1lte"
,
"doovc9"
,
"zh-cn;alp-al00"
,
"sm-t311"
,
"nexus 6p"
,
"android6.0;1503-m02"
,
"zh-cn;vivox7plus"
,
"lovme"
,
"x1"
,
"android4.4.4;g621-tl00"
,
"android5.1;cun-tl00;"
,
"jkla165"
,
"yl-coolpad8676_a01"
,
"meizus6"
,
"r7"
,
"birdl3"
,
"mz-m57ac"
,
"zh-cn;bln-al10"
,
"gt-i9152"
,
"nexus 7"
,
"gm-w"
,
"gt-i9168i"
,
"gm-t1"
,
"coolpady70-c"
,
"samsung-sm-g9009d"
,
"android6.0;pe-tl10"
,
"lenovok30-e"
,
"samsung-sm-g9009w"
,
"zh-cn;redmi3s"
,
"sm-t800"
,
"hisensee70-t"
,
"android6.0;gn8003l"
,
"y71-711"
,
"s1pro"
,
"v188s"
,
"android4.4.2;nx507j"
,
"p7-l00"
,
"r7005"
,
"p780"
,
"samsung-sm-g9209"
,
"android6.0;1603-a03"
,
"a33m"
,
"p1c72"
,
"android5.1;v3"
,
"zh-cn;vivox9i"
,
"lenovoa6000"
,
"n5209"
,
"huaweim2-803l"
,
"p7-l07_td"
,
"sm-e7000"
,
"nexus one"
,
"android6.0;eva-al10"
,
"zh-cn;oppoa57t"
,
"p8"
,
"huaweim2-801w"
,
"sm-g925a"
,
"android6.0;s9"
,
"android6.0;uoogou"
,
"a59s"
,
"nexus11"
,
"coolpad5263cs"
,
"sm-g3518"
,
"zh-cn;plk-al10"
,
"zh-cn;mi5x"
,
"hisensef23"
,
"samsung-sm-j3119"
,
"n918st"
,
"coolpad7620l"
,
"a59m"
,
"x6"
,
"samsung-sm-j7109"
,
"y21"
,
"android6.0;cam-tl00h"
,
"sm-g9508"
,
"uoogouf5"
,
"huawei nxt-ul00"
,
"huawei;zh_cn;applewebkit"
,
"zh-cn;mi5s"
,
"lenovoa768t"
,
"kingsun-f70"
,
"android6.0;ar9"
,
"zh-cn;4g+"
,
"v3maxa"
,
"samsung-sm-n9008v_td release"
,
"android6.0;knt-ul10"
,
"mz-m2e"
,
"zh-cn;mz-m3s"
,
"mlledl9"
,
"noaina1"
,
"samsung-sm-n9109w"
,
"android5.1;opsson_v6"
,
"android5.0.1;mx5"
,
"gionee-gionee_s10c/s10c"
,
"sm-n9208"
,
"g7-ul20"
,
"sm-a5009"
,
"huaweip6-u06"
,
"vivox3f"
,
"android4.4.4;sm-g5108"
,
"plk-cl00"
,
"android5.0.2;sm-a7009"
,
"ztebv0710"
,
"la-s33"
,
"huawei p6-c00"
,
"lenovoa936"
,
"cpn-w09"
,
"android4.3;r6007"
,
"s8-701w"
,
"android6.0.1;sm-n9109w"
,
"android5.1;8298-m02"
,
"android6.0;samsung-sm-g925a"
,
"xiaomimi5s"
,
"fig-tl10"
,
"vivox3sw"
,
"android5.1;wp"
,
"zh-cn;vky-al00"
,
"sm-g7108v_td"
,
"hw-che1-cl10"
,
"android4.4.4;shown_p1"
,
"android4.4.2;gt-i9500"
,
"android6.0;samsung-sm-g920a"
,
"cpn-al00"
,
"huawei p6-t00"
,
"android4.3;r7007"
,
"hw-chm-cl00"
,
"lenovo s810t"
,
"android6.0.1;kiw-cl00"
,
"samsung-sm-w2016"
,
"android5.1.1;nx511j"
,
"android5.1;gn9008"
,
"yl-coolpad8297-c00"
,
"zh-cn;bnd-al10"
,
"u22"
,
"zh-cn;mimax"
,
"mz-m3"
,
"fig-al00"
,
"biheea8+"
,
"asus_z00ad"
,
"android5.1;cun-al00"
,
"zh-cn;gionee-f100a/f100a"
,
"gt-n5100"
,
"jxd"
,
"zh-cn;vivoy51a"
,
"5"
,
"coolpad8705"
,
"lnv-lenovoa360e"
,
"sm-g5700"
,
"coolpad5890"
,
"android5.1.1;sm801"
,
"huaweince-al10"
,
"hlanx"
,
"android6.0;x7(20160103)"
,
"a37m"
,
"gt-s7568"
,
"vivoy22il"
,
"tclp588l"
,
"samsungsm-n910u"
,
"zh-cn;yl-coolpad5263s"
,
"x9plus"
,
"zukz2151"
,
"sc-03d"
,
"k-touchtouch3"
,
"android7.0;frd-al00"
,
"android6.0;4g"
,
"doovl3c)applewebkit"
,
"n958st"
,
"coolpadsk1-01"
,
"vivox6splus"
,
"samsung sm-g930f"
,
"mz-m1 e"
,
"samsungsm-g5500"
,
"android5.1;m578c"
,
"android4.4.4;bestsonny_lt988"
,
"android7.0;sm-g9550"
,
"f6"
,
"huaweic8817l"
,
"r830"
,
"7plus"
,
"mz-m1 note"
,
"zh-cn;dig-tl10"
,
"hlanote1-l"
,
"mla-ul00"
,
"c730lw"
,
"coolpad5367c"
,
"zh-cn;redmi4x"
,
"zh-cn;vivoy51"
,
"lenovoa880"
,
"sm-g5306w"
,
"android4.4.4;m623c"
,
"zh-cn;mi4lte"
,
"mt2-l01"
,
"gt-i9505"
,
"sagam7"
,
"oppo;zh_cn;applewebkit"
,
"android5.1.1;a51kc"
,
"yl-coolpad8297-t01"
,
"h9"
,
"android4.4.4;kingsun-f"
,
"android6.0;f100l"
,
"android4.4.4;a31u"
,
"android5.1;mytel"
,
"yl-coolpady76"
,
"h8sm"
,
"sm-g5520"
,
"asus_z00ed"
,
"oppog7788"
,
"lenovos850t"
,
"onefivec3"
,
"uoogou-t8"
,
"htc_d816x"
,
"android6.0;f100s"
,
"android4.4.4;p2"
,
"lephonea7+"
,
"cp8298_i00"
,
"gn9005"
,
"h8s"
,
"s03"
,
"android5.1.1;scl-cl00"
,
"android4.4.4;n958st"
,
"android5.1.1;nx510j"
,
"android5.1;gm-q5"
,
"zh-cn;nem-al10"
,
"lenovo s850t"
,
"android4.3;zh-cn;gionee-gn9005/gn9005"
,
"android6.0;mts-t0"
,
"sagaa908"
,
"ss2-01"
,
"yl-coolpady891"
,
"p6-u06"
,
"gucci"
,
"android6.0.1;kiw-ul00"
,
"android6.0;vie-al10"
,
"samsungsm-n9100"
,
"sm-g5109"
,
"zh-cn;bkl-al20"
,
"readboy_g90"
,
"gm-t6"
,
"vivoy20t"
,
"android4.4.2;pe-cl00"
,
"android4.4.4;sm-g5109"
,
"max"
,
"android6.0.1;sm-j5108"
,
"yl-coolpada8-930"
,
"zh-cn;dig-al00"
,
"5s"
,
"vivoy19t"
,
"android4.4.2;2014011"
,
"android5.1;x-apple"
,
"android5.1;h8s"
,
"ivvi i3-01"
,
"zh-cn;gionee-s9/s9"
,
"la2-sn"
,
"sph-m840"
,
"k50-t5"
,
"get"
,
"gt-i9158"
,
"hisensef22m"
,
"android4.4.4;sk3-01"
,
"android4.4.2;pe-tl00m"
,
"sm-t2519"
,
"htcm8st"
,
"20170608s"
,
"nx505j"
,
"la2-s"
,
"android5.1;m681c"
,
"oppo+r9tm"
,
"nexusone"
,
"android6.0.1;kiw-tl00"
,
"jmm-tl10"
,
"gt-i9082c"
,
"sm-g935f"
,
"r9splus"
,
"aeq1"
,
"ar9"
,
"android5.1;4g"
,
"r7plust"
,
"android6.0;r5"
,
"hyf"
,
"ags-l09"
,
"android5.1.1;nx529j"
,
"r9sk"
,
"sm705"
,
"hmnote1ltew"
,
"sm-g7108"
,
"android4.4.2;pe-tl10"
,
"android6.0.1;sm-a5100"
,
"zh-cn;oppor9sk"
,
"android4.4.4;chm-cl00"
,
"android6.0;eva-al00"
,
"android5.1;x9"
,
"zh-cn;sm-g9350"
,
"zh-cn;h60-l01"
,
"oppo+r9s"
,
"vivoy17t"
,
"sm-a3000"
,
"android5.1;mz-m2"
,
"yl-coolpady1"
,
"owwo7s"
,
"huaweic8950d"
,
"ivvi ss1-01"
,
"hw-scl-cl00"
,
"gionee-gionee_s10l/s10l"
,
"oppo+r9m"
,
"lenovo s898t"
,
"android6.0;mx6"
,
"zh-cn;oppoa59s"
,
"sm-p350"
,
"lenovo s898t+"
,
"android4.4.2;pe-tl20"
,
"zh-cn;mz-m1e"
,
"vivoy15t"
,
"ivvi ss1-03"
,
"hol-t00"
,
"r2010"
,
"android6.0;f5"
,
"mz-m1e"
,
"gionee-gn9011/gn9011"
,
"xiaomihm1sc"
,
"gt-i9082"
,
"koobee s301t"
,
"android5.1.1;scl-al00"
,
"coolpad8712;android"
,
"go50023"
,
"konkas1"
,
"lephone t2"
,
"coolpad8712_cmcc_lte"
,
"gt-i8552"
,
"gionee-f100l/f100l"
,
"vivoy13t"
,
"mz-mx4 pro"
,
"android4.4.4;r7t"
,
"mz-m1note"
,
"android6.0.1;ath-ul00"
,
"xiaomihm1sw"
,
"android4.4.2;h60-l01"
,
"huaweigra-l10"
,
"zh-cn;oppoa59m"
,
"r9plusma"
,
"g666"
,
"owwoq8"
,
"huaweigra-l09"
,
"android6.0.1;sm-c7000"
,
"zteba602"
,
"fdr-a03l"
,
"got3"
,
"lenovo s90-t"
,
"p6-t00"
,
"tclp316l"
,
"lenovo a2860"
,
"android6.0.1;sm-g9350"
,
"android4.3;sm-g7106"
,
"eyut11"
,
"fdr-a01w"
,
"htcm8sw"
,
"gionee-f100/f100"
,
"haipainobles3"
,
"xbs"
,
"mz-pro5"
,
"lenovos90-t"
,
"mlledr9"
,
"gon3s"
,
"nx510j"
,
"20160829s"
,
"mz-pro6"
,
"sm-g920a"
,
"android4.4.4;sm-a7000"
,
"yl-coolpadt2-00"
,
"bft61"
,
"p1c58"
,
"sa8"
,
"lenovo x3c50"
,
"android4.4.4;m1"
,
"android4.4.3;k2-l"
,
"coolpady90"
,
"android6.0;f100b"
,
"coolpady891"
,
"mz-pro 5"
,
"linuxx86_64)applewebkit"
,
"android7.0;sm-g9300"
,
"noainx7"
,
"sm-g3502i"
,
"mz-pro 6"
,
"android4.4.4;readboy_g90"
,
"zh-cn;gionee-gn9010/gn9010"
,
"mt7-tl00_td"
,
"x9000"
,
"koobee s9"
,
"common"
,
"android6.0.1;sm-a7100"
,
"bft19"
,
"android5.1.1;sm-j3109"
,
"yl-coolpad5956"
,
"mt7-tl10_td"
,
"r8205"
,
"xt1570"
,
"lephone t708"
,
"la-s7"
,
"virtualmachine2"
,
"lenovoa858t"
,
"lenovopb2-670n"
,
"lephone t708v"
,
"android5.1;r9"
,
"comiot9"
,
"coolpad5891q"
,
"c03"
,
"android6.0;f106"
,
"zh-cn;mz-m6note"
,
"sop-m3"
,
"xshitou-nt18"
,
"zh-cn;m3note"
,
"doovt21"
,
"coolpady82-820"
,
"yl-coolpadt2-c01"
,
"lenovoa3800-d"
,
"huawei crr-ul20"
,
"android7.0;vtr-tl00"
,
"coolpad7620l-w00"
,
"vivoy11it"
,
"android5.1.1;sm-j3110"
,
"android5.1.1;sm-g5309w"
,
"ipad4,1) applewebkit"
,
"android5.1;4g+"
,
"vky-tl00"
,
"t1-a21w"
,
"coolpady80d"
,
"ts550"
,
"zh-cn;sch-n719"
,
"android5.1.1;sm-j3119"
,
"samsungsm-g6000"
,
"ipad4,4) applewebkit"
,
"android5.1;uoogou-t8"
,
"eyut7"
,
"htcd820ts"
,
"coolpad7722"
,
"noain x9v"
,
"samsungsm-n9500"
,
"hmnote1w"
,
"sm-n7508v_td"
,
"lephone w2"
,
"mz-m2note"
,
"owwo4s"
,
"la-s5"
,
"android6.0;bln-tl10"
,
"android5.1;nf"
,
"vivoy11"
,
"lephone w7"
,
"android7.0;duk-al20"
,
"yq603"
,
"android6.0;mp1503"
,
"android4.3;r8007"
,
"ztev0840"
,
"h60-l12"
,
"sch-i699"
,
"samsung gt-i9500"
,
"android6.0.1;sm-a7108"
,
"zh-cn;was-al00"
,
"g19"
,
"android5.1;h9"
,
"c1530l"
,
"lephone w9"
,
"birdl7plus"
,
"coolpad8690_t00"
,
"hisensef20t"
,
"vivoy11iw"
,
"android5.1;w909"
,
"huaweim2-a01w"
,
"y71-811"
,
"one"
,
"u7"
,
"ipad5,3) applewebkit"
,
"coolpady71-811"
,
"samsung gt-i9508"
,
"android5.0.2;che-tl00"
,
"zh-cn;huaweirio-al00"
,
"m688c"
,
"coolpad8690"
,
"konkae1"
,
"android6.0.1;sm-c5000"
,
"android5.1.1;kingsun-f3c"
,
"android6.0.1;kingsun-f70"
,
"c1330"
,
"sm-g5309w"
,
"android5.1;sm-j7008"
,
"readboy_g35s"
,
"bf_t25"
,
"shownp1"
,
"kingsun-f3c"
,
"sm-g3819d"
,
"huawei cun-tl00"
,
"android5.0;gn9006"
,
"android6.0;mz-m5s"
,
"yl-coolpad7722"
,
"t03"
,
"sk2-01"
,
"la-s31"
,
"lenovo a3580"
,
"android4.4.4;sm-w2015"
,
"android7.1.1;1607-a01"
,
"ivvii3-01"
,
"hmnote1ltetd"
,
"android6.0.1;sov33"
,
"android7.0;was-al00"
,
"konkad557"
,
"android4.4.2;l50t"
,
"r815t"
,
"ztec2016"
,
"android4.4.2;chm-ul00"
,
"android6.0.1;sm-a8000"
,
"android4.4.4;sm-e7009"
,
"ztec880u"
,
"android4.4.4;s3"
,
"meizupro7pluslet"
,
"samsungsm-n9200"
,
"pe-ul00"
,
"k-touch h2"
,
"android4.4.4;p308l"
,
"android5.1;g699"
,
"meizupro7let"
,
"lenovoa3600-d"
,
"kopo k33"
,
"android4.4.4;h3"
,
"123456789abcdef"
,
"zh-cn;gionee-f100s/f100s"
,
"sugars9"
,
"g621-tl00m"
,
"wp-s2"
,
"ksd1051"
,
"asus_t00f"
,
"hs-hisense f20t"
,
"meizupro6slet"
,
"zh-cn;m5note"
,
"wp-s"
,
"coolpad7295c"
,
"3"
,
"lenovo a368t"
,
"meizupro6pluslet"
,
"tclp501m"
,
"a37f"
,
"c107-9"
,
"lenovo x2-to"
,
"android5.1;la-x4"
,
"android7.0;ta-1000"
,
"e6883"
,
"huawei dav-703l"
,
"android5.1.1;a51"
,
"android6.0;hd1"
,
"vivoxplay6l"
,
"meizupro6let"
,
"sm919"
,
"htcd516d"
,
"samsung sm-g935f"
,
"meizunote5let"
,
"lenovoz2"
,
"ivviss1-03"
,
"android6.0.1;kiw-tl00h"
,
"android6.0;x7"
,
"yl-coolpad9190l_c00"
,
"m811"
,
"noainx11"
,
"bf_t13"
,
"hs-hisense f22"
,
"gionee-gn8003/gionee-gn8003"
,
"meizunote3let"
,
"android4.4.4;che1-cl20"
,
"zh-cn;m6note"
,
"gt-i9308"
,
"c106-7"
,
"meizumx6let"
,
"zh-cn;ple-703l"
,
"sm-g9308"
,
"kopo l6"
,
"gionee-gn5005/gionee-gn5005"
,
"meizumx5let"
,
"zh-cn;m2note"
,
"coolpadt2-c01"
,
"redmi 4x"
,
"android5.1.1;kiw-ul00"
,
"meizumaxlet"
,
"r7t"
,
"htf908"
,
"android6.0.1;zh_cn;c106-8"
,
"f1f"
,
"k2-l"
,
"ivviv1m"
,
"kopo l8"
,
"android4.4.2;r7005"
,
"lenovoa399"
,
"huaweip6-t00"
,
"coolpadt2-00"
,
"lenovok51c78"
,
"sc-cl00"
,
"android5.1;lt580"
,
"android5.1;mz-mx4"
,
"sm901"
,
"coolpadt2-w01"
,
"huawei eva-dl00"
,
"unc-a2"
,
"sm801"
,
"android7.0;trt-al00a"
,
"android7.0;trt-tl10"
,
"ivviv3"
,
"lenovok50-t3s"
,
"bf_t12"
,
"meizu5slet"
,
"android4.4.2;h60-l12"
,
"zh-cn;gionee-gn5001/gn5001"
,
"lenovoa820t"
,
"sugary7"
,
"android4.4.4;3007"
,
"android5.0.2;sm-a5009"
,
"android6.0;la-s31"
,
"mz-m5s"
,
"zh-cn;oppoa37m"
,
"sm-n900"
,
"nx511j_v3"
,
"huaweiy511-t00"
,
"bowayu11"
,
"android6.0.1;c106-8"
,
"lenovok32c36"
,
"android5.0.1;gt-i9502"
,
"sm-j7108"
,
"android5.1.1;m623c"
,
"android6.0;1603-a02"
,
"sm-j7109"
,
"coolpad8297-w01"
,
"android4.4.4;sm-g5308w"
,
"zh-cn;oppor7"
,
"k3dx-v5g"
,
"android4.4.4;f301"
,
"yl-coolpady91-921"
,
"lenovok31-t3"
,
"hisensed2-m"
,
"android5.1;lovme"
,
"android5.0.2;sm-g5309w"
,
"sc-ul10"
,
"zh-cn;mz-m1note"
,
"oppoa31"
,
"c106-6"
,
"android7.0;sm-g9500"
,
"lenovoa788t"
,
"huaweigra-cl10"
,
"android6.0;m621c"
,
"android5.1;x7"
,
"dalvik"
,
"android6.0;frd-al00"
,
"android4.4.4;??"
,
"zh-cn;mx6"
,
"mz-m5"
,
"zh-cn;mx5"
,
"sop-m9"
,
"r829t"
,
"s658t"
,
"android4.4.4;sm-g5306w"
,
"android7.0;was-tl10"
,
"d888"
,
"lovme-t15"
,
"huaganht8"
,
"coolpad8702d"
,
"lenovo a3900"
,
"android4.4.2;gn151"
,
"android6.0;frd-al10"
,
"android6.0.1;g0215d"
,
"android5.1;u7"
,
"gionee-f105/f105"
,
"tclp590l"
,
"yl-8298-m02"
,
"android6.0;sm-g5309w"
,
"lenovok10e70"
,
"yoord"
,
"huawei tag-cl00"
,
"android6.0.1;sm-a9000"
,
"android6.0.1;sm-n9108v"
,
"samsungsm-g9008v"
,
"samsungsm-n9005"
,
"sm-g5108q"
,
"haipainobles1"
,
"ytonev2"
,
"jd-t"
,
"android5.1.1;m631"
,
"android5.0;sm-n9008"
,
"android5.1.1;sm-a5100"
,
"zteb2015"
,
"android6.0.1;sm-a9100"
,
"ztebv0720"
,
"l50t"
,
"android5.1;s7"
,
"android6.0;4g+"
,
"hm1sc"
,
"sm-g3818"
,
"mz-u20"
,
"android5.1;koomii-k8"
,
"lenovoa805e"
,
"huaweig629-ul00"
,
"k1"
,
"android5.0;sm-n9008s"
,
"android6.0;t1"
,
"yl-coolpad8713"
,
"zh-cn;mz-m2"
,
"ivviss1-01"
,
"lephonet9"
,
"android5.1;h7"
,
"s1"
,
"comioa8"
,
"gn9008"
,
"lenovox2-ap"
,
"lenovo a3910e70"
,
"android6.0;h60-l01"
,
"zh-cn;gionee-f103/f103"
,
"android5.0;r7plus"
,
"zh-cn;lon-al00"
,
"htc_x9u"
,
"changhongs06"
,
"xiaomi2014821"
,
"mlledl8"
,
"mi1s"
,
"sm-g5108"
,
"android6.0.1;c107-9"
,
"birdl2"
,
"samsung sm-a3000"
,
"zh-cn;huaweicaz-al10"
,
"lphone"
,
"android5.1.1;ple-703l"
,
"zh-cn;knt-al20"
,
"y67a"
,
"android5.1.1;m636"
,
"mz-m571c"
,
"android5.1;best_sonny_lt533"
,
"samsungsm-g9250"
,
"gionee-s9/s9"
,
"sch-p729"
,
"android5.0.2;che-tl00h"
,
"mp1701"
,
"lingwin"
,
"doovl1"
,
"android5.1;ar9"
,
"zh-cn;oppoa33"
,
"tclm2m"
,
"changhongs08"
,
"samsung-sm-n900a"
,
"android6.0;u20"
,
"e6683"
,
"noainx12"
,
"mz-m2"
,
"android4.4.2;nx505j"
,
"android4.3;n5117"
,
"android6.0.1;jdn-al00"
,
"changhongs09"
,
"lenovos658t"
,
"android7.0;vtr-al00"
,
"zh-cn;gionee-gn3003/gn3003"
,
"r1"
,
"mp1603"
,
"android5.1.1;sm-a8000"
,
"noxw"
,
"android4.4.2;che2-tl00"
,
"android5.0;asus_z00adb"
,
"zh-cn;gionee-f5/f5"
,
"r827t"
,
"android4.2.1;2013022"
,
"android5.0;tcl_p620m"
,
"huaweic8815"
,
"votogt11"
,
"android5.0.1;sch-i959"
,
"zh-cn;mz-m2e"
,
"boway_u7"
,
"coolpada8-930"
,
"d2533"
,
"en-us)applewebkit"
,
"android5.1;gm-t5"
,
"android5.1;xshitou-nt18"
,
"gn3003l"
,
"android5.1;r2"
,
"android6.0;r7plus"
,
"vivox5maxv"
,
"android5.1;tetc-v1"
,
"gionee-gn9012/gn9012"
,
"coolpada8-831"
,
"coolpadt1"
,
"lenovoa628t"
,
"mp1512"
,
"android5.1;mz-m3s"
,
"sm-w2016"
,
"sm-a3009"
,
"lenovoa938t"
,
"android6.0.1;sm919"
,
"android4.4.2;gt-n7100"
,
"bw521"
,
"lephonew9+"
,
"huawei tit-cl00"
,
"android7.0;pra-al00"
,
"yl-coolpad5263"
,
"okp6"
,
"a51kc"
,
"sm-g3589w"
,
"sm-n900t"
,
"rio-ul00"
,
"gn5001l"
,
"h3"
,
"lenovoa360t"
,
"android6.0.1;sm-c7010"
,
"android6.0.1;lex722"
,
"zh-cn;mi-4c"
,
"lenovoa850"
,
"owwo5s"
,
"jdn-w09"
,
"bf_t18"
,
"4a"
,
"android4.4.4;n918st"
,
"hisensem20-m"
,
"android4.4.4;cm810"
,
"zh-cn;mz-m3"
,
"m2017"
,
"lephonev8"
,
"android4.2.2;hol-t00"
,
"android6.0.1;1505-a02"
,
"x620"
,
"xt1085"
,
"jdn-al00"
,
"android7.0;bln-tl00"
,
"sm-n9109w"
,
"android7.1.1;od103"
,
"vivox3t"
,
"nx511j"
,
"htc_m8x"
,
"android5.1;gn9010"
,
"gt-i8558"
,
"huaweig628-tl00"
,
"android4.4.4;g620s-ul00"
,
"jd-plus"
,
"sm-g3568v"
,
"android6.0.1;jdn-w09"
,
"ramosr9"
,
"vivos7t"
,
"hw-huawei rio-cl00"
,
"android6.0;m611d"
,
"lezhoulz6"
,
"f303"
,
"mumu"
,
"lg-d855"
,
"android6.0;gn5003"
,
"sop-w1"
,
"android6.0.1;sm-c9000"
,
"gionee-v185/v185"
,
"gionee-gn5001s/gn5001s"
,
"zh-cn;vivox9plus"
,
"t3"
,
"zh-cn;trt-al00a"
,
"bestsonny_lt988"
,
"htcd820u"
,
"android4.4.3;hw-che1-cl10"
,
"kob-l09"
,
"android4.4.4;1107"
,
"ivvif1s"
,
"vivox3v"
,
"android6.0;gn5005"
,
"android4.3;r831s"
,
"coolpady60-c1"
,
"zh-cn;m651cy"
,
"android5.1;lgtd-x3l"
,
"zh-cn;4g"
,
"gm-q5"
,
"xm-tpro"
,
"sintaves1plus"
,
"huawei g6-c00"
,
"lenovoa890e"
,
"huaweig610-t11"
,
"coolpad5316"
,
"oppo a57t"
,
"android5.0.2;m823"
,
"mz-m688c"
,
"android7.0;bln-al40"
,
"lex822"
,
"hisensem10-m"
,
"k-touchx6"
,
"2013023"
,
"hlanote3"
,
"android5.1;zh-cn;gionee-gn5001s/gn5001s"
,
"android6.0;m685c"
,
"p2"
,
"bfv9"
,
"android6.0.1;1515-a01"
,
"yl-coolpady80d"
,
"zh-cn;mz-m5s"
,
"1509-a00"
,
"r833t"
,
"haipainobles8"
,
"yltx6-r9"
,
"android6.0;ale-tl00"
,
"samsungsm-g9550"
,
"oppor831t"
,
"r8"
,
"android6.0;gn8002s"
,
"android4.4.4;p318l"
,
"android4.4.2;t1-701u"
,
"f301"
,
"t07"
,
"android4.4.2;2014501"
,
"tcl_p620m"
,
"cmcm5s"
,
"android5.0.2;sm-a5000"
,
"android6.0;ale-ul00"
,
"oppor829t"
,
"sch-n719"
,
"coolpad7298d"
,
"go t3"
,
"android5.1.1;sm-j5108"
,
"hilaryh2"
,
"lex722"
,
"android4.4.2;123456789abcdef"
,
"lenovoa808t"
,
"lenovo a5500"
,
"yusuna7"
,
"android7.0;pra-al00x"
,
"zh-cn;eva-al10"
,
"p7"
,
"x909"
,
"android6.0.1)applewebkit"
,
"meizu;zh_cn;applewebkit"
,
"yl-coolpadt1"
,
"zh-cn;eva-al00"
,
"nx513j"
,
"honorh30-l02"
,
"sm-n910g"
,
"hyf-a1"
,
"sm-g3812"
,
"huawei g6-t00"
,
"android5.1;gn152"
,
"go t5"
,
"android5.1;gn3002l"
,
"zh-cn;vivox9s"
,
"asus_z010da"
,
"huawei g6-u00"
,
"coolpad8737a"
,
"android5.1;m3s"
,
"android6.0;gn9011"
,
"android4.2.2;2014011"
,
"t2"
,
"gt-i9158p"
,
"zteq529c"
,
"android7.0;vie-al10"
,
"sch-i959"
,
"1100"
,
"x3"
,
"android6.0;gn9012"
,
"android4.3;sm-n7508v"
,
"android7.0;mi-4c"
,
"x9i"
,
"en-us;nexusone"
,
"sch-w2013"
,
"android5.1.1;ss2-01"
,
"samsungsm-g935x"
,
"samsungsm-g9500"
,
"gm-t5"
,
"6s"
,
"android4.4.4;yq601"
,
"zh-cn;mix2"
,
"ztea2017"
,
"android6.0.1;mix"
,
"onefivec2"
,
"best_sonny_lt416"
,
"lex651"
,
"oppoa53t"
,
"r7s"
,
"hw-nxt-cl00"
,
"android5.0;f303"
,
"zh-cn;oppor7s"
,
"s8"
,
"oppor813t"
,
"android5.1;gn3001"
,
"x6d"
,
"lenovoa806"
,
"lex650"
,
"huaweiu8120"
,
"1515-a01"
,
"android5.0;sm-g9009d"
,
"android6.0;mp1512"
,
"coolpad8729"
,
"f100b"
,
"sugarf7"
,
"android5.1;qk-6385t"
,
"android7.0;btv-dl09"
,
"samsungsm-n9208"
,
"y66"
,
"lenovos90-e"
,
"f1"
,
"vivox510t"
,
"bowayl3"
,
"android6.0.1;1605-a01"
,
"huaweig730-t00"
,
"lenovo a5800-d"
,
"yl-coolpadb770"
,
"android7.0;edi-al10"
,
"yl-coolpada8-932"
,
"gionee-gn3001/gn3001"
,
"hwi-tl00"
,
"sm-n910u"
,
"lenovoa916"
,
"android5.0;m3"
,
"f100sl"
,
"zh-cn;huaweitag-tl00"
,
"m351"
,
"t02"
,
"sm-j700f"
,
"coolpad8715"
,
"android5.1;mz-mx5"
,
"android6.0;h9"
,
"android5.0.2;f303"
,
"zh-cn;huaweitag-al00"
,
"hlj-x1-l"
,
"android4.4.4;r8207"
,
"f103l"
,
"android6.0.1;lex720"
,
"??"
,
"android5.1;zh-cn;"
,
"android4.4.4;n5207"
,
"android5.1;lovme-t16"
,
"coolpad5263s"
,
"android4.4.4;la2-s"
,
"android5.1;gn3003l"
,
"coolpad5267"
,
"android4.4.4;m463c"
,
"y23l"
,
"f103s"
,
"android4.4.4;aoledior"
,
"bowayu16"
,
"bf_t19"
,
"android7.0;eva-tl00"
,
"android5.0;zh-cn;"
,
"zh-cn;stf-al10"
,
"lenovos850"
,
"7722ct"
,
"android5.1.1;mi-4c"
,
"huaweicun-tl00"
,
"samsungsm-n9008v"
,
"samsungsm-g930x"
,
"lenovoa5890"
,
"h30-u10"
,
"g699"
,
"android5.0;sm-n900"
,
"sop-m8"
,
"m823"
,
"lenovo a5860"
,
"oppor7t"
,
"doovt20l"
,
"lenovoa860e"
,
"coolpad8720l"
,
"android6.0.1;ath-tl00"
,
"cenxins17"
,
"gionee-gn8002s/gionee-gn8002s"
,
"h30-t10"
,
"samsung-sm-n7508v_td release"
,
"android4.4.4;la2-sn"
,
"coolpad8718"
,
"android6.0;cam-tl00"
,
"android6.0;mytel"
,
"android5.1;gn5001l"
,
"hs-hisensee70-t"
,
"coolpad5367"
,
"lg-h860"
,
"android5.1;best_sonny_lt416"
,
"android4.4.4;x5"
,
"yl-coolpads6-nt1"
,
"mi+4lte"
,
"owwoq7"
,
"android6.0.1;sm-n9100"
,
"huaweicun-al00"
,
"oppor7st"
,
"android5.1;m2"
,
"android5.1;gn5001"
,
"android4.4.4;sm-a5000"
,
"yl-coolpads6-nt"
,
"gionee-f100s/f100s"
,
"h30-t00"
,
"g688"
,
"lephonet3+"
,
"f108"
,
"bgo-dl09"
,
"android5.1.1;kiw-al10"
,
"zh-cn;knt-al10"
,
"lenovoa388t"
,
"ztea2015"
,
"gionee-f103/f103"
,
"tclp301m"
,
"birdd08"
,
"huaweig610-c00"
,
"android5.1;y21"
,
"android5.1;jd-plus"
,
"coolpad8712"
,
"huaweig660-l075"
,
"koobeem7q"
,
"android5.1.1;8692-m02"
,
"m-16"
,
"m836"
,
"android5.1;f100a"
,
"android6.0;d51732"
,
"android6.0.1;sm-g5520"
,
"doovl520"
,
"gionee-gionee_s10cl/s10cl"
,
"lenovok80m"
,
"q3"
,
"coolpady1"
,
"lephonev5"
,
"android6.0.1;ath-tl00h"
,
"mz-m681c"
,
"zh-cn;oppor9tm"
,
"gn9010l"
,
"huaweicrr-cl00"
,
"coolpad5200s"
,
"android6.0.1;sm-g5700"
,
"android7.0;knt-tl10"
,
"a680q"
,
"shownp2"
,
"sm-g3588v"
,
"android6.0;gem-703l"
,
"hw-huaweiy635-cl00"
,
"zh-cn;frd-al00"
,
"gn9000"
,
"hisensee51-m"
,
"honor h30-l02"
,
"gionee-gionee_s10/s10"
,
"r9tm"
,
"02:00:00:00:00:00"
,
"n3"
,
"ztec880a"
,
"lenovoa6800"
,
"coolpad8670"
,
"android5.1;r1"
,
"android4.4.4;k2-01"
,
"android4.4.4;gucci"
,
"sm-g7509"
,
"lephonew7"
,
"android7.0;bln-al20"
,
"android5.1.1;samsung-sm-j3109"
,
"sm-g3609"
,
"coolpad8702"
,
"huawei g610-t11"
,
"android4.4.2;sm-n9006"
,
"zh-cn;bac-al00"
,
"cm810"
,
"samsung-sm-g5308w_td"
,
"zh-cn;plk-tl01h"
,
"bah-w09"
,
"lenovoa3580"
,
"lenovoa808t-i"
,
"mz-mx6"
,
"android5.1;8298-a01"
,
"android5.1;7722ct"
,
"vivox5maxl"
,
"x18"
,
"samsung sm-e7000"
,
"android6.0;1503-a01"
,
"android6.0;nce-al00"
,
"x800+"
,
"s5"
,
"android5.1;f105"
,
"android6.0.1;nx569j"
,
"ksd1053"
,
"android5.0.2;sm-a7000"
,
"android6.0;knt-al10"
,
"nx569j"
,
"h7"
,
"android6.0;nce-al10"
,
"1701-m01"
,
"lenovoa380t"
,
"x5"
,
"android5.1;s6"
,
"letvx502"
,
"m8"
,
"htc_a9u"
,
"android4.4.2;m812c"
,
"t1-a23l"
,
"huawei g610-u00"
,
"android6.0;gn8003"
,
"android5.1;gn8001"
,
"1703-m01"
,
"zh-cn;lovme-t15"
,
"wp_v5"
,
"coolpad5892"
,
"android7.1.1;od105"
,
"coolpad8675-hd"
,
"huaweia199"
,
"tcl750"
,
"coolpad5951"
,
"coolpad8675-fhd"
,
"zh-cn;m3"
,
"htcd820t"
,
"koobeea3"
,
"gomes1"
,
"birdm6"
,
"hw-huaweiale-cl00"
,
"1707-a01"
,
"s860e"
,
"r9s"
,
"dazenx7"
,
"android4.4.4;boway_u7"
,
"gionee-gn3003/gn3003"
,
"s810t"
,
"nexus4"
,
"p770"
,
"koobees9q"
,
"zh-cn;mz-m5"
,
"mi2s"
,
"lephonet2"
,
"p318l"
,
"sm-g3502c"
,
"android6.0;nem-tl00"
,
"koobeem6"
,
"android6.0;nem-tl00h"
,
"xiaomi2014112"
,
"lephonet13"
,
"lenovoa3300-t"
,
"mi2a"
,
"opsson"
,
"coolpad5217"
,
"android7.0;knt-al10"
,
"sch-i739"
,
"sm-g3608"
,
"android5.0.2;f103"
,
"mz-m5note"
,
"gt-i9200"
,
"vivoy11t"
,
"yl-coolpad5952"
,
"oppor1s"
,
"coolpad8297w"
,
"android6.0;eva-tl00"
,
"coolpad8298-a01"
,
"sm-n920g"
,
"nx573j"
,
"nossons6"
,
"yl-coolpad8676_m01"
,
"android6.0;hm-i506-tl"
,
"sov33"
,
"nx575j"
,
"huaweic8818"
,
"ckbd"
,
"sch-p709e"
,
"android5.1.1;kiw-cl00"
,
"samsungsm-g9300"
,
"sm-g3509i"
,
"r9m"
,
"s7"
,
"s968t"
,
"android6.0;nem-ul10"
,
"android7.1.1;ta-1000"
,
"tcl302u"
,
"huaweic8817e"
,
"sintaves1"
,
"android5.1;f100"
,
"mla-al00"
,
"coolpad8675-f01"
,
"hisensem30t"
,
"android5.1;bestsonny_lt988"
,
"android5.1.1;nx513j"
,
"sm-g9209"
,
"g620s-ul00"
,
"kopol8"
,
"noaink6"
,
"qk-6385t"
,
"hisensem30"
,
"android7.0;knt-ul10"
,
"android6.0;btv-dl09"
,
"aoledior"
,
"huaweig610-u00"
,
"r2"
,
"vivox7plusl"
,
"android6.0.1;sm-g9006v"
,
"android6.0;pe-cl00"
,
"sm-j710gn"
,
"eva-cl00"
,
"v188"
,
"asus_t00j"
,
"lephonew2"
,
"android4.4.4;che1-cl10"
,
"android5.0;sm-n9002"
,
"coolpad8715_cmcc_td"
,
"oppor9plustma"
,
"s16"
,
"beee7s"
,
"android5.1.1;sm-g5500"
,
"android4.4.2;4g"
,
"android5.1.1;nx511j_v3"
,
"android5.1;a5"
,
"android5.1.1;scale"
,
"huaweic8816"
,
"android5.1.1;2014813"
,
"lenovoa2580"
,
"doovl5"
,
"mla-tl00"
,
"hlj-gm-q1"
,
"nexus5"
,
"huaweic8816d"
,
"lenovoa5860"
,
"android5.1;1501_m02"
,
"u707t"
,
"birdlt02"
,
"android5.1;mx5"
,
"android4.4.4;sk2-01"
,
"xiaomi4"
,
"y55a"
,
"1713-a01"
,
"gn9007"
,
"android5.1;gn9010l"
,
"r823t"
,
"android4.4.4;sk3-02"
,
"ob-oppoa31c"
,
"lenovoa5800-d"
,
"s898t"
,
"android6.0;dig-al00"
,
"android6.0;x600"
,
"android4.4.2;sm-g3568v"
,
"coolpad5370"
,
"xiaomi2013023"
,
"mla-tl10"
,
"alp-tl00"
,
"gt-i9152p"
,
"tetc-v1"
,
"android6.0;m5s"
,
"quyq1"
,
"coolpad8712s;android"
,
"nx595j"
,
"iphone 6sp"
,
"nf"
,
"coolpad8297"
,
"opsson_v6"
,
"android6.0;eva-dl00"
,
"samsungsm-j7008"
,
"mlledv9"
,
"samsung sm-g5510"
,
"a57"
,
"yusuna8"
,
"android5.1;8676-m01"
,
"zh-cn;gionee-gn3001/gn3001"
,
"lenovoa2800-d"
,
"a5"
,
"android4.3;x9007"
,
"zh-cn;redmi4a"
,
"d6653"
,
"vmx6"
,
"samsung-sm-j3109"
,
"android5.1.1;kiw-tl00"
,
"android4.4.4)applewebkit"
,
"android5.1;gm-t5+"
,
"zh-cn;bln-al20"
,
"huaweic199s"
,
"ramosmos1"
,
"samsung sm-g5700"
,
"yl-sk3-01"
,
"mlledx9"
,
"lephonet5v"
,
"android6.0;plk-al10"
,
"mi 1s"
,
"huaganht6"
,
"android5.1;8676-a01"
,
"android5.1.1;kiw-tl00h"
,
"zh-cn;vivoy55a"
,
"huaweic199"
,
"android5.1;8681-a01"
,
"zh-cn;letvx500"
,
"r9"
,
"lenovoa2860"
,
"samsung sm-g6100"
,
"android7.0;duk-tl30"
,
"yl-coolpad8297-t02"
,
"lenovoa850+"
,
"android4.4.2;che2-tl00m"
,
"android5.0;sm-n9006"
,
"android5.1;jd-t"
,
"ta-1041"
,
"android4.4.2;che-tl00h"
,
"android4.4.4;wp-s"
,
"android4.3;sm-g7108v"
,
"samsungsm-g9200"
,
"sch-i939i"
,
"s820e"
,
"hyf-e1"
,
"lephonet7"
,
"android4.4.2;chm-tl00h"
,
"lt580"
,
"t11"
,
"vivox1st"
,
"android5.1;g19"
,
"ath-ul00"
,
"android5.1;xt1085"
,
"android4.4.4;1100"
,
"lenovos898t+"
,
"mi 2a"
,
"k-touchh2"
,
"sm-g3608_td"
,
"android7.0;bln-tl10"
,
"zh-cn;redmi3"
,
"laaboov6"
,
"vivov3maxl"
,
"samsung sm-g7106"
,
"android5.1;mx4"
,
"android6.0;gn8002"
,
"android6.0.1;nx569h"
,
"tclp331m"
,
"tetc-s9"
,
"huawei g629-ul00"
,
"zh-cn;huaweivns-al00"
,
"ath-tl00h"
,
"en-us;nexus5"
,
"android6.0.1;ath-al00"
,
"android6.0;a680q"
,
"oysinx8"
,
"bln-tl00"
,
"lenovo a808t-i"
,
"lenovo a6800"
,
"zh-cn;kiw-al10"
,
"sm-g9006v"
,
"samsung sm-g7508q"
,
"android5.1;bf_t13"
,
"ath-tl00"
,
"android6.0;yepen"
,
"pro7-h"
,
"xt1052"
,
"coolpadk1-nt"
,
"samsungsm-a7000"
,
"doovl1m"
,
"s820"
,
"android4.4.4;r7c"
,
"android5.0.1;gt-i9500"
,
"zh-cn;m1metal"
,
"v5"
,
"ath-cl00"
,
"android6.0;edi-al10"
,
"android5.0.2;plk-tl01h"
,
"sch-i829"
,
"coolpad5721"
,
"mz-m3note"
,
"android7.0;lon-al00"
,
"android6.0.1;sm-g9009d"
,
"pro7plus"
,
"note"
,
"lenovo a688t"
,
"samsung sm-g9008v"
,
"android4.4.2;v188s"
,
"android4.4.2;pe-ul00"
,
"coolpad8705_cmcc_td"
,
"android6.0.1;sm-g9009w"
,
"2a"
,
"r11"
,
"iphone 91"
,
"onee1001"
,
"o"
,
"xiaomimimax"
,
"doovl7"
,
"s810t td"
,
"k-touchk5"
,
"samsung sm-g9008w"
,
"android7.0;nem-al10"
,
"shownp1+"
,
"android5.1;jxd-t55"
,
"samsungsm-g9280"
,
"sm-t331c"
,
"4g-plus"
,
"k-touchk6"
,
"android5.0.2;m3"
,
"iphone 92"
,
"xt1662"
,
"bf_a503"
,
"android5.1;bm006"
,
"lenovotb2-x30f"
,
"pe-tl00m_td"
,
"knt-tl10"
,
"nokia_xl_4g"
,
"huaweig730-l075"
,
"vivoxplay"
,
"1105"
,
"opssonv6"
,
"wp_v6"
,
"k2-01"
,
"huawei g660-l075"
,
"android5.1;m6"
,
"gioneef6l"
,
"laabood1"
,
"note2"
,
"pro 6s"
,
"android6.0.1;sm-g9209"
,
"mi4"
,
"android4.4.4;hw-chm-cl00"
,
"sk1-01"
,
"gioneef6"
,
"note3"
,
"android4.4.4;sm-g3609"
,
"lephonet6+"
,
"doova10"
,
"sm-j3300"
,
"xiaoxyep7"
,
"zteba610c"
,
"android6.0.1;sm-n9200"
,
"rv:16.0)gecko"
,
"android4.4.2;gn9000"
,
"samsungsm-a5000"
,
"release"
,
"zh-cn;sintaves1000"
,
"android7.0;knt-al20"
,
"samsungsm-a7100"
,
"lovme-t12"
,
"gioneef109l"
,
"huawei"
,
"android5.1.1;sm-g6000"
,
"android6.0;get"
,
"android6.0.1;scale"
,
"zh-cn;gionee-gn8001/gn8001"
,
"zh-cn;aoledior"
,
"gioneef109"
,
"mi-oneplus"
,
"android6.0;plk-cl00"
,
"zh-cn;gionee-gionee_gn5007/gn5007"
,
"g620-l75"
,
"lenovos810t"
,
"samsungsch-i699i"
,
"android5.0.2;x608"
,
"r819t"
,
"android5.1;bestsonny_lt989"
,
"android5.0.5;4g"
,
"mi 5c"
,
"quyq1s"
,
"android6.0.1;sm-g9280"
,
"android5.0.2;ale-tl00"
,
"yl-coolpady75"
,
"zh-cn;sintaves1"
,
"zh-cn;xshitou-nt18"
,
"zh-cn;stf-al00"
,
"doova3"
,
"s90-t"
,
"coolpady76"
,
"coolpadr108"
,
"xiaomimi4w"
,
"lephonet708"
,
"koobees301"
,
"android5.0;sm-n9008v"
,
"gt-s7898"
,
"zh-cn;vivox6d"
,
"x-apple"
,
"android6.0;cam-ul00"
,
"android7.0;sm-g9350"
,
"doova5"
,
"lenovo a708t"
,
"android6.0;bln-al10"
,
"doova6"
,
"nx507j"
,
"sm-g8508s"
,
"coolpad8702d_cmcc_lte"
,
"8692-m02"
,
"samsung sm-g9208"
,
"gt-i9118"
,
"sm-t355c"
,
"vivoy623"
,
"g7-tl00"
,
"nxt-ul00"
,
"android4.4.4;2014821"
,
"zteq519t"
,
"android5.0.2;ale-ul00"
,
"android4.4.2;yoord"
,
"coolpad8297-t01_cmcc_td"
,
"huaweitit-cl00"
,
"p308l"
,
"android5.1;aloes"
,
"m578ca"
,
"gt-i8262d"
,
"android4.4.4;sm-a7009"
,
"android5.1.1;nx512j"
,
"android6.0.1;sm-g5510"
,
"coolpad5956"
,
"android5.1;zh-cn;gionee-f100/f100"
,
"r8200"
,
"kopol128"
,
"htc d816w"
,
"android6.0.1;1509-a00"
,
"sk3-02"
,
"kopol168"
,
"android5.0;sm-n9009"
,
"mx7"
,
"zh-cn;oppor7sm"
,
"android4.4.4;v183"
,
"android5.0.2;plk-tl00"
,
"hisensee602m"
,
"android6.0.1;m3x"
,
"y67"
,
"meitum4"
,
"coolpad8029"
,
"android4.4.4;sm-e7000"
,
"mz-m1metal"
,
"android5.1;bf_t25"
,
"android4.4.4;yepen"
,
"android4.4.4;c730lw"
,
"android6.0.1;sm-g6100"
,
"huaweig750-t00"
,
"huaweinxt-l09"
,
"shown_p1"
,
"android4.4.2;sm705"
,
"samsung sm-a7108"
,
"android6.0.1;sm-g9008v"
,
"android6.0;plk-tl00"
,
"android5.0.2;gn9006"
,
"android4.4.4;a31t"
,
"android6.0;pe-tl20"
,
"htc d820t"
,
"n1t"
,
"coolpad5950"
,
"s920"
,
"android6.0;bm006"
,
"android4.4.4;aloes"
,
"huaweig750-t20"
,
"android5.1;y685q"
,
"android4.4.2;sm-n9005"
,
"android4.4.4;x9007"
,
"android4.4.4;t1-a21w"
,
"samsung sm-g9308"
,
"android6.0.1;gm-q5+"
,
"ob-oppo 3005"
,
"htc d820u"
,
"android5.1.1;yq603"
,
"mi-one plus"
,
"android6.0;plk-ul00"
,
"ãã"
,
"m812c"
,
"lenovo a7600-m"
,
"android5.0;sm-g9008v"
,
"samsungsm-c700x"
,
"coolpad8732"
,
"huawei g730-l075"
,
"android6.0;btv-w09"
,
"zh-cn;wp"
,
"coolpad8675-w00"
,
"huawei g730-t00"
,
"android5.1;gm-t1"
,
"nxt-cl00"
,
"yl-coolpad5892_c00"
,
"nxt-dl00"
,
"yl-coolpad5891q"
,
"huawei g730-u00"
,
"android5.1.1;4g"
,
"android5.1;cp8676_i02"
,
"android6.0;mz-mx6"
,
"android4.4.4;p8"
,
"zh-cn;m6"
,
"android5.0.2;asus_z010da"
,
"coolpads6-nt"
,
"a2015"
,
"android6.0.1;x900+"
,
"android4.4.2;u19"
,
"android5.1;4gvolte"
,
"coolpad9976d"
,
"android7.0;pra-tl10"
,
"coolpad7295c_c00"
,
"android7.0;frd-dl00"
,
"coolpady82-900"
,
"king7"
,
"huawei y511-t00"
,
"s60-t"
,
"android4.4.2;h60-l02"
,
"android6.0;zh-cn;"
,
"android5.1.1;yq601"
,
"readboy_g100"
,
"coolpad8297d"
,
"huawei g750-t00"
,
"android5.1;sop-n1"
,
"lenovo a788t"
,
"android5.1;hw-scl-cl00"
,
"samsung sm-j3110"
,
"android5.1;yepen"
,
"android5.1.1;f103s"
,
"android5.1;s03"
,
"huawei g750-t20"
,
"android4.4.4;sm-g3608"
,
"android5.1;la-s1"
,
"ob-oppo a51kc"
,
"ob-oppo r7005"
,
"android5.0;f103"
,
"android4.4.2;v188"
,
"ob-oppo r8205"
,
"android5.1;20151209t"
,
"android4.4.4;n5209"
,
"android5.1;gm-t6"
,
"huaweipe-tl20"
,
"coolpads6-nc1"
,
"android6.0.1;sm-g9008w"
,
"lenovo a808t"
,
"android4.4.4;r8107"
,
"samsung sm-j5108"
,
"android6.0.1;c106"
,
"android4.4.2;2013023"
,
"android4.4.4;sm-g7509"
,
"huawei gem-703l"
,
"android6.0;mp1602"
,
"android4.4.4;sm-g7200"
,
"samsung sm-j7008"
,
"lenovo a820t"
,
"android5.1;gn3002"
,
"android4.4.2;h60-l03"
,
"bladev6"
,
"android5.1.1;2014812"
,
"lenovo a850"
,
"android6.0;changhongs08"
,
"android5.1;y685c"
,
"android6.0.1;c106-9"
,
"android5.1.1;t1-823l"
,
"samsung-sm-g920a"
,
"lenovo a858t"
,
"android5.1;y71-811"
,
"android5.1.1;2014811"
,
"android6.0;n09"
,
"samsung-sm-g925a"
,
"android6.0;bln-al20"
,
"android4.4.2;s2"
,
"samsung sm-n9002"
,
"android4.4.4;1105"
,
"sch-i879"
,
"android5.1;m1"
,
"android4.4.4;sm-g7508q"
,
"android4.4.4;r8200"
,
"samsung sm-n9006"
,
"android6.0;mz-m5"
,
"android4.4.4;r8205"
,
"samsung sm-n9008"
,
"samsung sm-n9008s"
,
"android5.0.2;sm-a3000"
,
"android5.1;m57ac"
,
"samsung sm-n9108v"
,
"rv:43.0) gecko"
,
"lenovo a938t"
,
"android6.0;2014817"
,
"hw-huawei b199"
,
"android5.1;scale"
,
"android6.0.1;sm-a5108"
,
"hw-huawei c199s"
,
"android6.0.1;sm-j7109"
,
"android5.1;t03"
,
"android6.0.1;sm-g9208"
,
"hw-huawei c8816d"
,
"android5.1;jxd"
,
"android5.1;gn5002"
,
"android6.0;zh-cn;gionee-gn5003/gionee-gn5003"
,
"coolpad9976a"
,
"hw-huawei c8817e"
,
"android5.1;hlj-x1-l"
,
"android5.0;r7plust"
,
"coolpady70c"
,
"android6.0;"
,
"android4.4.4;g621-tl00m"
,
"android6.0.1;x800"
,
"android5.1;m651cy"
,
"android5.0;sm-g9008w"
,
"android6.0.1;x800+"
,
"android5.1.1;zh-cn;"
,
"hm 1sw"
,
"android5.0.2;zh-cn;"
,
"android5.1.1;8692-a00"
,
"android6.0.1;kingsun-f4"
,
"android5.1;nx541j"
,
"coolpad8017"
,
"android6.0.1;x900"
,
"one a2001"
,
"le x625"
,
"android5.1.1;yq607"
,
"android4.4;g7-tl00"
,
"lenovo k10e70"
,
"android4.4.4;sm-g5108q"
,
"android4.4.4;3005"
,
"one e1001"
,
"android5.1;md6"
,
"android5.1;m688c"
,
"android5.1;p9"
,
"sm-g9287"
,
"android6.0;lex622"
,
"android5.1;aoledior"
,
"rio-cl00"
,
"coolpad9190_t00"
,
"android7.0;eva-dl00"
,
"android6.0;lex626"
,
"android4.2.2;zh-cn;gionee-v185"
,
"coolpad8297_cmcc_td"
,
"android4.3;g620-l75"
,
"p7-l05"
,
"android5.1;gn9007"
,
"coolpad7296s"
,
"android5.0.2;nx511j"
,
"android4.4.4;asus_x002"
,
"sm-t211"
,
"android4.4;zh-cn;"
,
"s850t"
,
"hw-c8817d"
,
"android4.4.4;hht6a"
,
"r7kf"
,
"sm-g5308w_td"
,
"p993"
,
"nxt-tl00_td"
,
"p70-t"
,
"ot-990m"
,
"sm-t705c"
,
"s850"
,
"s890"
,
"s90-e"
,
"p6"
,
"sch-i939d"
,
"sm-g9008v_td"
,
"sbm200sh"
,
"sbm303sh"
);
public
static
void
main
(
String
[]
args
)
{
ChromeDriverManager
.
getInstance
().
useMirror
().
forceCache
().
setup
();
WebDriver
driver
=
new
ChromeDriver
();
for
(
String
model
:
models
)
{
try
{
findOne
(
model
,
driver
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
private
static
void
findOne
(
String
model
,
WebDriver
driver
){
if
(!
DBUtils
.
isSpiderMobile
(
model
))
{
System
.
out
.
println
(
model
+
"已经爬过了"
);
return
;
}
try
{
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
String
newModel
;
if
(
StringUtils
.
contains
(
model
,
";"
))
{
newModel
=
StringUtils
.
substringAfter
(
model
,
";"
);
}
else
{
newModel
=
model
;
}
driver
.
get
(
"http://search.zol.com.cn/s/"
);
// driver.get("http://detail.zol.com.cn/index.php?c=SearchList&keyword=chm-tl00h");
WebElement
element
=
driver
.
findElement
(
By
.
id
(
"kword"
));
element
.
sendKeys
(
newModel
);
WebElement
element2
=
driver
.
findElement
(
By
.
linkText
(
"产品"
));
element2
.
click
();
WebElement
element1
=
driver
.
findElement
(
By
.
className
(
"search-btn"
));
element1
.
click
();
List
<
WebElement
>
elements
=
driver
.
findElements
(
By
.
className
(
"list-item"
));
MobileVO
mobileVO
=
new
MobileVO
();
mobileVO
.
setOldModel
(
model
);
if
(
CollectionUtils
.
isNotEmpty
(
elements
))
{
WebElement
mobileElement
=
elements
.
get
(
0
);
String
brandName
=
mobileElement
.
findElement
(
By
.
cssSelector
(
".pro-intro > ul > li.cate > a:nth-child(2)"
)).
getText
();
String
mobile
=
mobileElement
.
findElement
(
By
.
cssSelector
(
"h3 > a"
)).
getText
();
String
mobileName
=
StringUtils
.
substringBefore
(
mobile
,
"("
);
String
modelName
=
StringUtils
.
replace
(
mobileName
,
brandName
,
""
).
trim
();
String
price
=
mobileElement
.
findElement
(
By
.
cssSelector
(
".price-type"
)).
getText
();
mobileVO
.
setBrandName
(
brandName
);
mobileVO
.
setBrandPinyin
(
changeToPinYin
(
brandName
));
mobileVO
.
setMobileName
(
mobileName
);
mobileVO
.
setModel
(
modelName
);
mobileVO
.
setPrice
(
price
);
}
DBUtils
.
add
(
mobileVO
);
System
.
out
.
println
(
mobileVO
);
}
private
static
String
changeToPinYin
(
String
str
){
HanyuPinyinOutputFormat
format
=
new
HanyuPinyinOutputFormat
();
format
.
setToneType
(
HanyuPinyinToneType
.
WITHOUT_TONE
);
char
[]
chars
=
str
.
toCharArray
();
StringBuilder
fullPrint
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
chars
.
length
;
i
++)
{
try
{
String
[]
temp
=
PinyinHelper
.
toHanyuPinyinStringArray
(
chars
[
i
],
format
);
if
(
temp
==
null
)
{
return
str
;
}
fullPrint
.
append
(
temp
[
0
]);
}
catch
(
BadHanyuPinyinOutputFormatCombination
e
)
{
e
.
printStackTrace
();
}
}
return
fullPrint
.
toString
();
}
}
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/SinaBlogProcessor.java
View file @
1e486d20
...
...
@@ -30,6 +30,7 @@ public class SinaBlogProcessor implements PageProcessor {
//文章页
}
else
{
page
.
putField
(
"title"
,
page
.
getHtml
().
xpath
(
"//div[@class='articalTitle']/h2"
));
System
.
out
.
println
(
page
.
getHtml
().
xpath
(
"//div[@class='articalTitle']/h2"
));
page
.
putField
(
"content"
,
page
.
getHtml
().
xpath
(
"//div[@id='articlebody']//div[@class='articalContent']"
));
page
.
putField
(
"date"
,
page
.
getHtml
().
xpath
(
"//div[@id='articlebody']//span[@class='time SG_txtc']"
).
regex
(
"\\((.*)\\)"
));
...
...
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/WeiboTopSpider.java
View file @
1e486d20
...
...
@@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory;
import
us.codecraft.webmagic.Page
;
import
us.codecraft.webmagic.Site
;
import
us.codecraft.webmagic.Spider
;
import
us.codecraft.webmagic.downloader.
selenium.
SeleniumDownloader
;
import
us.codecraft.webmagic.downloader.SeleniumDownloader
;
import
us.codecraft.webmagic.processor.PageProcessor
;
import
us.codecraft.webmagic.selector.Selectable
;
...
...
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/ZolBrandSpider.java
0 → 100644
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
samples
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Sets
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
us.codecraft.webmagic.Page
;
import
us.codecraft.webmagic.Site
;
import
us.codecraft.webmagic.Spider
;
import
us.codecraft.webmagic.downloader.HttpClientDownloader
;
import
us.codecraft.webmagic.processor.PageProcessor
;
import
us.codecraft.webmagic.selector.Selectable
;
import
javax.management.JMException
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.concurrent.CopyOnWriteArrayList
;
public
class
ZolBrandSpider
implements
PageProcessor
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
AnjukeSpider
.
class
);
private
Site
site
=
Site
.
me
().
setRetryTimes
(
3
).
setSleepTime
(
3000
).
setCycleRetryTimes
(
3
)
.
setUserAgent
(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
)
// .addHeader("Cookie","ip_ck=4sKJ5Pn/j7QuNTU4MzM4LjE1MTc5MTk0NDQ%3D; lv=1517919445; vn=1; z_pro_city=s_provice%3Dzhejiang%26s_city%3Dhangzhou; Hm_lvt_ae5edc2bc4fc71370807f6187f0a2dd0=1517919449; visited_subcateId=57; Hm_lvt_63bf9e4e99a63f89aa91dd6bd5978c7a=1517919462; Hm_lpvt_63bf9e4e99a63f89aa91dd6bd5978c7a=1517919462; userProvinceId=26; userCityId=153; userCountyId=0; userLocationId=158648; realLocationId=158648; userFidLocationId=158648; z_day=izol97232%3D2%26ixgo20%3D1%26rdetail%3D7; Adshow=5; Hm_lpvt_ae5edc2bc4fc71370807f6187f0a2dd0=1517919686\n")
.
addHeader
(
"Referer"
,
"http://www.zol.com.cn/"
);
private
List
<
String
>
mobileBrandUrlList
=
new
CopyOnWriteArrayList
<>();
private
Set
<
String
>
mobileBrandNames
=
Sets
.
newHashSet
(
"vivo"
,
"OPPO"
,
"华为"
,
"三星"
,
"苹果"
,
"荣耀"
,
"金立"
,
"魅族"
,
"中兴"
,
"Moto"
,
"努比亚"
,
"一加"
,
"锤子科技"
,
"360"
,
"国美手机"
,
"小米"
,
"夏普"
,
"华硕"
,
"美图"
,
"诺基亚"
,
"HTC"
,
"8848"
,
"SUGAR"
,
"黑莓"
,
"海信"
,
"AGM"
,
"索尼移动"
,
"酷派"
,
"LG"
,
"联想"
,
"联想ZUK"
,
"谷歌"
,
"飞利浦"
,
"朵唯"
,
"大神"
,
"酷比"
,
"天语"
,
"微软"
,
"小辣椒"
,
"TCL"
,
"长虹"
,
"康佳"
,
"中国移动"
,
"YotaPhone"
,
"雷蛇"
,
"MANN"
,
"纽曼"
,
"邦华"
,
"海尔"
,
"VEB"
,
"惠普"
,
"乐目"
,
"格力"
,
"云创通"
,
"COMIO"
,
"小格雷"
,
"sonim"
,
"神舟"
,
"先锋"
,
"BDV"
,
"imoo"
,
"innos"
,
"蓝魔"
,
"汇威"
,
"柯达"
,
"富可视"
,
"Acer宏碁"
,
"PPTV"
,
"松下"
,
"manta"
,
"TP-LINK"
,
"索野"
,
"同洲"
,
"达闼"
,
"奇酷"
,
"乐视"
,
"明基"
,
"UT斯达康"
,
"大可乐"
,
"ivvi"
,
"青橙"
,
"守护宝"
,
"21克"
,
"克里特"
,
"保千里"
,
"新石器"
,
"GEMRY"
,
"云狐"
,
"阿尔卡特"
,
"朗界"
,
"卡布奇诺"
,
"青葱"
,
"彩石"
,
"首云"
,
"领虎"
,
"传奇"
,
"独影天幕"
,
"米蓝"
,
"青想"
,
"华度"
,
"超多维"
,
"优豊"
,
"百合"
,
"铂爵"
,
"易百年"
,
"全普"
,
"泛泰"
,
"意龙"
,
"阔密"
,
"Ant one"
,
"途为"
,
"VAIO"
,
"小宇宙"
,
"图灵"
,
"VANO"
,
"美猴王"
,
"垦鑫达"
,
"读书郎"
,
"IUNI"
,
"波导"
,
"红鸟"
,
"BROR"
,
"言信"
,
"雅马亚虎"
,
"卓普"
,
"宝丽来"
,
"nibiru"
,
"美莱仕"
,
"直角"
,
"百事"
,
"欧恩"
,
"亿通"
,
"Gigaset金阶"
);
@Override
public
void
process
(
Page
page
)
{
String
oldBrand
=
StringUtils
.
substringAfter
(
page
.
getUrl
().
get
(),
"&keyword="
);
System
.
out
.
println
(
oldBrand
);
System
.
out
.
println
(
page
.
getHtml
().
get
());
//手机列表区域
Selectable
selectable
=
page
.
getHtml
().
xpath
(
"//*[@class=\"list-item\"]"
);
//*[@id="wrapper"]/div[2]/div[1]/div
String
brand
=
selectable
.
xpath
(
"#pro-intro > ul > li.cate > a:nth-child(2)"
).
get
();
System
.
out
.
println
(
brand
);
// List<Selectable> selectables = page.getHtml().xpath("*[@id=\"list-content\"]/div[@class='li-itemmod']").nodes();
// if (selectables.size() == 0) {
// logger.warn("没找到指定内容={}", page.getRequest().getUrl());
// }
// for (Selectable selectable : selectables) {
// String communityName = selectable.$("h3 > a","text").get();
// String areaAddress = selectable.$("address","text").get();
// String area = StringUtils.substringBetween(areaAddress, "[","]").trim();
// String address = StringUtils.substringAfter(areaAddress, "]").trim();
// String price = selectable.$(".li-side > p > strong","text").get().trim();
// AnjuKeVO anjuKeVO = new AnjuKeVO();
// anjuKeVO.setAddress(address);
// anjuKeVO.setArea(area);
// anjuKeVO.setCity(city);
// anjuKeVO.setPrice(price);
// anjuKeVO.setCommunityName(communityName);
// anjuKeVO.setUrl(page.getRequest().getUrl());
// DBUtils.add(anjuKeVO);
// }
// page.addTargetRequests(page.getHtml().$(".page-content").links().all());
}
@Override
public
Site
getSite
()
{
return
site
;
}
public
static
void
main
(
String
[]
args
)
throws
JMException
{
HttpClientDownloader
httpClientDownloader
=
new
HttpClientDownloader
();
List
<
String
>
urls
=
Lists
.
newArrayList
();
for
(
String
url
:
Mobils
.
models
)
{
urls
.
add
(
"http://detail.zol.com.cn/index.php?c=SearchList&subcateId=57&keyword="
+
url
);
}
String
[]
urlArr
=
urls
.
toArray
(
new
String
[
urls
.
size
()]);
Spider
zol
=
Spider
.
create
(
new
ZolBrandSpider
()).
setDownloader
(
httpClientDownloader
)
// .setScheduler(new FileCacheQueueScheduler("zol_spider").setDuplicateRemover(new HashSetDuplicateRemover()))
.
addUrl
(
urlArr
).
thread
(
1
);
// .addUrl("https://lvliang.anjuke.com/community/p1/")
zol
.
start
();
}
}
webmagic-samples/src/main/java/us/codecraft/webmagic/samples/ZolMobileSpider.java
0 → 100644
View file @
1e486d20
package
us
.
codecraft
.
webmagic
.
samples
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Sets
;
import
net.sourceforge.pinyin4j.PinyinHelper
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat
;
import
net.sourceforge.pinyin4j.format.HanyuPinyinToneType
;
import
net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
us.codecraft.webmagic.Page
;
import
us.codecraft.webmagic.Site
;
import
us.codecraft.webmagic.Spider
;
import
us.codecraft.webmagic.downloader.HttpClientDownloader
;
import
us.codecraft.webmagic.model.samples.AnjuKeVO
;
import
us.codecraft.webmagic.processor.PageProcessor
;
import
us.codecraft.webmagic.scheduler.FileCacheQueueScheduler
;
import
us.codecraft.webmagic.scheduler.component.HashSetDuplicateRemover
;
import
us.codecraft.webmagic.selector.Selectable
;
import
us.codecraft.webmagic.utils.DBUtils
;
import
javax.management.JMException
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.concurrent.CopyOnWriteArrayList
;
public
class
ZolMobileSpider
implements
PageProcessor
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
AnjukeSpider
.
class
);
private
Site
site
=
Site
.
me
().
setRetryTimes
(
3
).
setSleepTime
(
3000
).
setCycleRetryTimes
(
3
)
.
setUserAgent
(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
);
private
List
<
String
>
mobileBrandUrlList
=
new
CopyOnWriteArrayList
<>();
private
Set
<
String
>
mobileBrandNames
=
Sets
.
newHashSet
(
"vivo"
,
"OPPO"
,
"华为"
,
"三星"
,
"苹果"
,
"荣耀"
,
"金立"
,
"魅族"
,
"中兴"
,
"Moto"
,
"努比亚"
,
"一加"
,
"锤子科技"
,
"360"
,
"国美手机"
,
"小米"
,
"夏普"
,
"华硕"
,
"美图"
,
"诺基亚"
,
"HTC"
,
"8848"
,
"SUGAR"
,
"黑莓"
,
"海信"
,
"AGM"
,
"索尼移动"
,
"酷派"
,
"LG"
,
"联想"
,
"联想ZUK"
,
"谷歌"
,
"飞利浦"
,
"朵唯"
,
"大神"
,
"酷比"
,
"天语"
,
"微软"
,
"小辣椒"
,
"TCL"
,
"长虹"
,
"康佳"
,
"中国移动"
,
"YotaPhone"
,
"雷蛇"
,
"MANN"
,
"纽曼"
,
"邦华"
,
"海尔"
,
"VEB"
,
"惠普"
,
"乐目"
,
"格力"
,
"云创通"
,
"COMIO"
,
"小格雷"
,
"sonim"
,
"神舟"
,
"先锋"
,
"BDV"
,
"imoo"
,
"innos"
,
"蓝魔"
,
"汇威"
,
"柯达"
,
"富可视"
,
"Acer宏碁"
,
"PPTV"
,
"松下"
,
"manta"
,
"TP-LINK"
,
"索野"
,
"同洲"
,
"达闼"
,
"奇酷"
,
"乐视"
,
"明基"
,
"UT斯达康"
,
"大可乐"
,
"ivvi"
,
"青橙"
,
"守护宝"
,
"21克"
,
"克里特"
,
"保千里"
,
"新石器"
,
"GEMRY"
,
"云狐"
,
"阿尔卡特"
,
"朗界"
,
"卡布奇诺"
,
"青葱"
,
"彩石"
,
"首云"
,
"领虎"
,
"传奇"
,
"独影天幕"
,
"米蓝"
,
"青想"
,
"华度"
,
"超多维"
,
"优豊"
,
"百合"
,
"铂爵"
,
"易百年"
,
"全普"
,
"泛泰"
,
"意龙"
,
"阔密"
,
"Ant one"
,
"途为"
,
"VAIO"
,
"小宇宙"
,
"图灵"
,
"VANO"
,
"美猴王"
,
"垦鑫达"
,
"读书郎"
,
"IUNI"
,
"波导"
,
"红鸟"
,
"BROR"
,
"言信"
,
"雅马亚虎"
,
"卓普"
,
"宝丽来"
,
"nibiru"
,
"美莱仕"
,
"直角"
,
"百事"
,
"欧恩"
,
"亿通"
,
"Gigaset金阶"
);
@Override
public
void
process
(
Page
page
)
{
// if (!DBUtils.isSpider(page.getRequest().getUrl())) {
// logger.warn("{}已经采集过", page.getRequest().getUrl());
// return;
// }
//手机列表区域
Selectable
mobileSelectable
=
page
.
getHtml
().
xpath
(
"/html/body/div[5]/div[1]/div[4]"
);
List
<
Selectable
>
mobils
=
mobileSelectable
.
xpath
(
"//*[@id=\"J_PicMode\"]/li"
).
nodes
();
String
brandName
=
null
;
String
model
=
null
;
for
(
Selectable
selectable
:
mobils
)
{
String
name
=
StringUtils
.
substringBefore
(
selectable
.
xpath
(
"/li/h3/a/text()"
).
get
(),
"("
).
trim
();
for
(
String
brand
:
mobileBrandNames
)
{
if
(
name
.
contains
(
brand
))
{
brandName
=
brand
;
model
=
StringUtils
.
replace
(
name
,
brand
,
""
);
break
;
}
}
String
price
=
selectable
.
xpath
(
"/li/div/span[2]/b[2]/text()"
).
get
();
String
pinyin
=
changeToPinYin
(
brandName
);
System
.
out
.
println
(
pinyin
+
"--"
+
brandName
+
"--"
+
model
+
"--"
+
price
);
}
// List<Selectable> selectables = page.getHtml().xpath("*[@id=\"list-content\"]/div[@class='li-itemmod']").nodes();
// if (selectables.size() == 0) {
// logger.warn("没找到指定内容={}", page.getRequest().getUrl());
// }
// for (Selectable selectable : selectables) {
// String communityName = selectable.$("h3 > a","text").get();
// String areaAddress = selectable.$("address","text").get();
// String area = StringUtils.substringBetween(areaAddress, "[","]").trim();
// String address = StringUtils.substringAfter(areaAddress, "]").trim();
// String price = selectable.$(".li-side > p > strong","text").get().trim();
// AnjuKeVO anjuKeVO = new AnjuKeVO();
// anjuKeVO.setAddress(address);
// anjuKeVO.setArea(area);
// anjuKeVO.setCity(city);
// anjuKeVO.setPrice(price);
// anjuKeVO.setCommunityName(communityName);
// anjuKeVO.setUrl(page.getRequest().getUrl());
// DBUtils.add(anjuKeVO);
// }
// TODO: 2018/2/5 目标页面加入
// page.addTargetRequests(page.getHtml().$(".page-content").links().all());
}
@Override
public
Site
getSite
()
{
return
site
;
}
private
String
changeToPinYin
(
String
str
){
HanyuPinyinOutputFormat
format
=
new
HanyuPinyinOutputFormat
();
format
.
setToneType
(
HanyuPinyinToneType
.
WITHOUT_TONE
);
char
[]
chars
=
str
.
toCharArray
();
StringBuilder
fullPrint
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
chars
.
length
;
i
++)
{
try
{
String
[]
temp
=
PinyinHelper
.
toHanyuPinyinStringArray
(
chars
[
i
],
format
);
if
(
temp
==
null
)
{
return
str
;
}
fullPrint
.
append
(
temp
[
0
]);
}
catch
(
BadHanyuPinyinOutputFormatCombination
e
)
{
e
.
printStackTrace
();
}
}
return
fullPrint
.
toString
();
}
public
static
void
main
(
String
[]
args
)
throws
JMException
{
HttpClientDownloader
httpClientDownloader
=
new
HttpClientDownloader
();
Spider
zol
=
Spider
.
create
(
new
ZolMobileSpider
()).
setDownloader
(
httpClientDownloader
)
// .setScheduler(new FileCacheQueueScheduler("zol_spider").setDuplicateRemover(new HashSetDuplicateRemover()))
.
addUrl
(
"http://detail.zol.com.cn/cell_phone_index/subcate57_list_1.html"
)
// .addUrl("https://lvliang.anjuke.com/community/p1/")
.
thread
(
2
);
zol
.
start
();
}
}
webmagic-samples/src/main/java/us/codecraft/webmagic/utils/DBUtils.java
View file @
1e486d20
...
...
@@ -6,6 +6,7 @@ import org.apache.commons.dbutils.QueryRunner;
import
org.apache.commons.dbutils.handlers.BeanListHandler
;
import
us.codecraft.webmagic.model.samples.AnjuKeVO
;
import
us.codecraft.webmagic.model.samples.CollegeVO
;
import
us.codecraft.webmagic.model.samples.MobileVO
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
...
...
@@ -69,4 +70,31 @@ public class DBUtils {
}
}
public
static
void
add
(
MobileVO
mobileVO
)
{
QueryRunner
qr
=
new
QueryRunner
();
String
sql
=
"insert into mobile(old_model, brand_name, brand_pinyin, mobile_name,model, price) values(?,?,?,?,?,?)"
;
Object
params
[]
=
{
mobileVO
.
getOldModel
(),
mobileVO
.
getBrandName
(),
mobileVO
.
getBrandPinyin
(),
mobileVO
.
getMobileName
(),
mobileVO
.
getModel
(),
mobileVO
.
getPrice
()
};
try
(
Connection
connection
=
dataSource
.
getConnection
())
{
qr
.
update
(
connection
,
sql
,
params
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
public
static
boolean
isSpiderMobile
(
String
oldModel
)
{
QueryRunner
qr
=
new
QueryRunner
(
dataSource
);
String
selectSql
=
"select * from mobile where old_model = ?"
;
try
{
String
[]
params
=
{
oldModel
};
List
<
MobileVO
>
mobileVOS
=
qr
.
query
(
selectSql
,
new
BeanListHandler
<>(
MobileVO
.
class
),
params
);
if
(
CollectionUtils
.
isNotEmpty
(
mobileVOS
))
{
return
false
;
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
return
true
;
}
}
webmagic-selenium/README.md
deleted
100644 → 0
View file @
6f611a1f
webmagic-extension
-------
webmagic与selenium的集成,用于爬取ajax页面。selenium太重,所以单独抽出成一个包了。
\ No newline at end of file
webmagic-selenium/config.ini
deleted
100644 → 0
View file @
6f611a1f
# What WebDriver to use for the tests
driver
=
phantomjs
#driver=firefox
#driver=chrome
#driver=http://localhost:8910
#driver=http://localhost:4444/wd/hub
# PhantomJS specific config (change according to your installation)
#phantomjs_exec_path=/Users/Bingo/bin/phantomjs-qt5
phantomjs_exec_path
=
/Users/Bingo/Downloads/phantomjs-1.9.8-macosx/bin/phantomjs
#phantomjs_driver_path=/Users/Bingo/Documents/workspace/webmagic/webmagic-selenium/src/main.js
phantomjs_driver_loglevel
=
DEBUG
\ No newline at end of file
webmagic-selenium/pom.xml
deleted
100644 → 0
View file @
6f611a1f
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<groupId>
us.codecraft.duiba
</groupId>
<artifactId>
webmagic-parent
</artifactId>
<version>
0.7.6-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
webmagic-selenium
</artifactId>
<properties>
<webdrivermanager.version>
2.1.0
</webdrivermanager.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.seleniumhq.selenium
</groupId>
<artifactId>
selenium-java
</artifactId>
<version>
3.8.1
</version>
</dependency>
<dependency>
<groupId>
us.codecraft.duiba
</groupId>
<artifactId>
webmagic-core
</artifactId>
<version>
${project.version}
</version>
</dependency>
<!--<dependency>-->
<!--<groupId>com.github.detro</groupId>-->
<!--<artifactId>phantomjsdriver</artifactId>-->
<!--<version>1.2.0</version>-->
<!--</dependency>-->
<dependency>
<groupId>
io.github.bonigarcia
</groupId>
<artifactId>
webdrivermanager
</artifactId>
<version>
${webdrivermanager.version}
</version>
</dependency>
<dependency>
<groupId>
com.codeborne
</groupId>
<artifactId>
phantomjsdriver
</artifactId>
<version>
1.4.3
</version>
<exclusions>
<exclusion>
<artifactId>
selenium-remote-driver
</artifactId>
<groupId>
org.seleniumhq.selenium
</groupId>
</exclusion>
<exclusion>
<artifactId>
selenium-api
</artifactId>
<groupId>
org.seleniumhq.selenium
</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
</dependency>
</dependencies>
</project>
webmagic-selenium/src/test/java/us/codecraft/webmagic/downloader/SeleniumTest.java
deleted
100644 → 0
View file @
6f611a1f
package
us
.
codecraft
.
webmagic
.
downloader
;
import
org.junit.Ignore
;
import
org.junit.Test
;
import
org.openqa.selenium.By
;
import
org.openqa.selenium.WebDriver
;
import
org.openqa.selenium.WebElement
;
import
org.openqa.selenium.chrome.ChromeDriver
;
import
org.openqa.selenium.remote.DesiredCapabilities
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author code4crafter@gmail.com <br>
* Date: 13-7-26 <br>
* Time: 下午12:27 <br>
*/
public
class
SeleniumTest
{
@Ignore
(
"need chrome driver"
)
@Test
public
void
testSelenium
()
{
System
.
getProperties
().
setProperty
(
"webdriver.chrome.driver"
,
"/Users/yihua/Downloads/chromedriver"
);
Map
<
String
,
Object
>
contentSettings
=
new
HashMap
<
String
,
Object
>();
contentSettings
.
put
(
"images"
,
2
);
Map
<
String
,
Object
>
preferences
=
new
HashMap
<
String
,
Object
>();
preferences
.
put
(
"profile.default_content_settings"
,
contentSettings
);
DesiredCapabilities
caps
=
DesiredCapabilities
.
chrome
();
caps
.
setCapability
(
"chrome.prefs"
,
preferences
);
caps
.
setCapability
(
"chrome.switches"
,
Arrays
.
asList
(
"--user-data-dir=/Users/yihua/temp/chrome"
));
WebDriver
webDriver
=
new
ChromeDriver
(
caps
);
webDriver
.
get
(
"http://huaban.com/"
);
WebElement
webElement
=
webDriver
.
findElement
(
By
.
xpath
(
"/html"
));
System
.
out
.
println
(
webElement
.
getAttribute
(
"outerHTML"
));
webDriver
.
close
();
}
}
webmagic-selenium/src/test/resources/config.ini
deleted
100644 → 0
View file @
6f611a1f
#driver=phantomjs
#driver=firefox
driver
=
chrome
#driver=http://localhost:8910
driver
=
http://localhost:4444/wd/hub
# PhantomJS specific config (change according to your installation)
#phantomjs_exec_path=/Users/detro/bin/phantomjs-qt5
phantomjs_exec_path
=
/Users/detro/bin/phantomjs-upstream
phantomjs_driver_path
=
../../src/main.js
phantomjs_driver_loglevel
=
DEBUG
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment