Restore character encoding guesser (#2755)
* Fixes #486. Builds on code from Steffen Stundzig - Switch from ICU4J to juniversalchardet (Java port of Mozilla charset detector) - Replace org.json code with Jackson - Add tests - Add TODO for multi-file character encoding mismatches * Restore dependency lost in rebase Co-authored-by: Steffen Stundzig <git@stundzig.de>
This commit is contained in:
parent
60ec57aff4
commit
e293602897
@ -357,6 +357,11 @@
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.albfernandez</groupId>
|
||||
<artifactId>juniversalchardet</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- test dependencies -->
|
||||
|
||||
|
@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.refine.ProjectMetadata;
|
||||
import com.google.refine.importers.ImporterUtilities.MultiFileReadingProgress;
|
||||
import com.google.refine.importing.EncodingGuesser;
|
||||
import com.google.refine.importing.ImportingJob;
|
||||
import com.google.refine.importing.ImportingParser;
|
||||
import com.google.refine.importing.ImportingUtilities;
|
||||
@ -72,7 +73,7 @@ abstract public class ImportingParserBase implements ImportingParser {
|
||||
ObjectNode options = ParsingUtilities.mapper.createObjectNode();
|
||||
JSONUtilities.safePut(options, "includeFileSources", fileRecords.size() > 1);
|
||||
JSONUtilities.safePut(options, "includeArchiveFileName", ImportingUtilities.hasArchiveFileField(fileRecords));
|
||||
|
||||
EncodingGuesser.guessInitialEncoding(fileRecords, options);
|
||||
return options;
|
||||
}
|
||||
|
||||
|
74
main/src/com/google/refine/importing/EncodingGuesser.java
Normal file
74
main/src/com/google/refine/importing/EncodingGuesser.java
Normal file
@ -0,0 +1,74 @@
|
||||
|
||||
package com.google.refine.importing;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.mozilla.universalchardet.UniversalDetector;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
|
||||
import com.google.refine.util.JSONUtilities;
|
||||
|
||||
/**
|
||||
* This class tries to find the correct encoding based on the
|
||||
* http://site.icu-project.org/ and the icu4j library
|
||||
* http://site.icu-project.org/home/why-use-icu4j.
|
||||
*
|
||||
* @author <a href="mailto:kontakt@stundzig.de">Steffen Stundzig</a>
|
||||
*/
|
||||
public final class EncodingGuesser {
|
||||
|
||||
public final static void guess(final ImportingJob job)
|
||||
throws FileNotFoundException, IOException {
|
||||
ObjectNode retrievalRecord = job.getRetrievalRecord();
|
||||
if (retrievalRecord != null) {
|
||||
ArrayNode fileRecords = JSONUtilities.getArray(retrievalRecord, "files");
|
||||
if (fileRecords != null) {
|
||||
// TODO: If different files have different encodings, we're only able to present a single
|
||||
// encoding to the user currently. Should we check for conflicts? Warn the user?
|
||||
for (int i = 0; i < fileRecords.size(); i++) {
|
||||
ObjectNode record = JSONUtilities.getObjectElement(fileRecords, i);
|
||||
String encoding = ImportingUtilities.getEncoding(record);
|
||||
if (StringUtils.isBlank(encoding)) {
|
||||
String location = JSONUtilities.getString(record, "location", null);
|
||||
if (location != null) {
|
||||
try (InputStream is = new BufferedInputStream(
|
||||
new FileInputStream(new File(job.getRawDataDir(), location)))) {
|
||||
String detected = UniversalDetector.detectCharset(is);
|
||||
if (detected != null) {
|
||||
JSONUtilities.safePut(record, "encoding", detected);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* uses the first found encoding in the file records as initial encoding and
|
||||
* put them into the options
|
||||
*
|
||||
* @param fileRecords
|
||||
* @param options
|
||||
*/
|
||||
public final static void guessInitialEncoding(final List<ObjectNode> fileRecords, final ObjectNode options) {
|
||||
if (fileRecords != null) {
|
||||
for (ObjectNode record : fileRecords) {
|
||||
String encoding = JSONUtilities.getString(record, "encoding", null);
|
||||
if (!StringUtils.isBlank(encoding)) {
|
||||
JSONUtilities.safePut(options, "encoding", encoding);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -145,6 +145,8 @@ public class ImportingUtilities {
|
||||
ArrayNode fileSelectionIndexes = ParsingUtilities.mapper.createArrayNode();
|
||||
JSONUtilities.safePut(config, "fileSelection", fileSelectionIndexes);
|
||||
|
||||
EncodingGuesser.guess(job);
|
||||
|
||||
String bestFormat = ImportingUtilities.autoSelectFiles(job, retrievalRecord, fileSelectionIndexes);
|
||||
bestFormat = ImportingUtilities.guessBetterFormat(job, bestFormat);
|
||||
|
||||
|
3341
main/tests/data/big5.html
Normal file
3341
main/tests/data/big5.html
Normal file
File diff suppressed because it is too large
Load Diff
3
main/tests/data/big5.txt
Normal file
3
main/tests/data/big5.txt
Normal file
@ -0,0 +1,3 @@
|
||||
科技紫微網:全球最大算命網站,張盛舒創辦
|
||||
科技紫微網是全球最大算命網站,由張盛舒創辦,提供免費算命、紫微、星座、占卜、姓名、命名、前世、塔羅、運勢、點燈、愛情、姻緣、命盤、農民曆、心理測驗、生肖及紫微課程教學
|
||||
紫微,紫微斗數,免費紫微,紫微命盤,紫微課程,前世,占卜
|
884
main/tests/data/euc-jp.html
Normal file
884
main/tests/data/euc-jp.html
Normal file
@ -0,0 +1,884 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ja" class="osWindows browserUndefined servicePortal pageHomeJpMixi domainJpMixi">
|
||||
<head>
|
||||
<title>ソーシャル・ネットワーキング サービス [mixi(ミクシィ)]</title>
|
||||
<!-- header meta values -->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
|
||||
<meta property="og:site_name" content="mixi" />
|
||||
<meta property="og:url" content="https://mixi.jp/" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:description" content="mixi(ミクシィ)は、友人・知人とのコミュニケーションをさらに便利に楽しくするSNSというサービスです。" />
|
||||
<meta property="og:image" content="https://img.mixi.net/img/public/pc/common/portal_ogp001.png" />
|
||||
<meta property="og:title" content="mixi(ミクシィ)" />
|
||||
<meta name="application-name" content="mixi" />
|
||||
<meta name="msapplication-starturl" content="/home.pl?from=pin" />
|
||||
<meta name="msapplication-navbutton-color" content="#E0C074" />
|
||||
<meta name="msapplication-window" content="width=100%;height=100%" />
|
||||
<meta name="msapplication-tooltip" content="友人とコミュニケーションを楽しもう!" />
|
||||
<meta name="description" lang="ja" content="mixi(ミクシィ)は、日記、写真共有、ゲームや便利ツール満載のアプリなど、さまざまなサービスで友人・知人とのコミュニケーションをさらに便利に楽しくする、日本最大規模のソーシャル・ネットワーキングサービスです。" />
|
||||
|
||||
<!-- / header meta values -->
|
||||
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/core-js/core-js-3.6.4.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/dialog-polyfill/dialog-polyfill-0.5.0.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/datalist-polyfill/datalist-polyfill-1.24.3.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/details-element-polyfill/details-element-polyfill-2.4.0.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/relative-time-format/relative-time-format-1.0.5.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/fetch/fetch-3.0.0.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/classList/classList.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/svg4everybody/svg4everybody-2.1.9.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/polyfill/svg4everybody/run.js?1514732400" crossorigin="anonymous"></script>
|
||||
<link rel="stylesheet" type="text/css" href="https://img.mixi.net/static/polyfill/dialog-polyfill/dialog-polyfill-0.5.0.css?1514732400" />
|
||||
<!-- header css and links -->
|
||||
<link rel="stylesheet" type="text/css" href="https://img.mixi.net/static/css/public/pc/common.css?1514732400" />
|
||||
<link rel="stylesheet" type="text/css" href="https://img.mixi.net/static/css/build/pc/portal.production.css?1591062397" />
|
||||
<link href="https://mixi.jp/" rel="canonical" /><link href="https://img.mixi.net/img/basic/favicon.ico" type="image/vnd.microsoft.icon" rel="icon" /><link href="https://img.mixi.net/img/basic/favicon.ico" type="image/vnd.microsoft.icon" rel="shortcut icon" /><link href="https://img.mixi.net/img/smartphone/touch/favicon/x001_prec.png" rel="apple-touch-icon-precomposed" />
|
||||
<!-- / header css and links -->
|
||||
|
||||
|
||||
<!-- header javascript --><script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/mixi_qa/errorreport.production.js?1592552077" crossorigin="anonymous"></script><script id="js-gateway" type="application/x.mixi.js-gateway"><!--{"recaptcha_v3_sitekey":"6LcHT30UAAAAAPVbk-2NO8dLZqhPLsFDPXbT_6cZ","url_mixi_prefix":"http://mixi.jp/","url_mixi_plugin_prefix":"https://plugins.mixi.jp/","url_fan_page_redirector_prefix":"http://p.mixi.jp/","url_open_prefix":"https://open.mixi.jp/","url_mobile_game_prefix":"http://m.mixi.jp/","CONFIG_IMG_BASE":"https://img.mixi.net","url_mobile_fan_apps_runtime":"http://mpa.mixi.net","url_mixi_static_prefix":"http://static.mixi.jp/","page_encoding":"euc-jp","url_external_script_prefix":"https://external-script.mixi.net/","login_member_display_name":"","url_mixi_prefix_ssl":"https://mixi.jp/","error_report_sampling_rate":0.07,"is_premium_login_member":0,"url_auth_prefix_ssl":"https://auth.in.mixi.co.jp/","url_fan_prefix":"http://page.mixi.jp/","url_pic_logo_base":"http://logo-imagecluster.img.mixi.jp/photo/comm","STATIC_FILE_BASE":"https://img.mixi.net","recaptcha_v2_sitekey":"6LcB2F8UAAAAANn_RjvAr3Zy0ljUAuyFskGUvSiZ","can_verify_recaptcha_v2":1,"url_mixi_plugin_prefix_ssl":"https://plugins.mixi.jp/","url_photo_prefix":"https://photo.mixi.jp/","url_fan_prefix_ssl":"https://page.mixi.jp/","url_application_sap_prefix":"https://sap.mixi.jp/","url_photo_prefix_ssl":"https://photo.mixi.jp/","url_news_prefix_ssl":"https://news.mixi.jp/","url_payment_prefix_ssl":"https://payment.mixi.jp/","url_news_prefix":"http://news.mixi.jp/","rpc_post_key":"054ed742486f2cf0f03c7b9028a57fbee6f1bab7","url_mixi_static_prefix_ssl":"https://static.mixi.jp/","is_adult_login_member":0,"url_pic_logo_base_ssl":"https://logo-imagecluster.img.mixi.jp/photo/comm","url_corp_develop_prefix":"http://developer.mixi.co.jp/","RUN_MODE":"production","url_mobile_pr_prefix":"http://pr.m.mixi.jp/","url_partner_ads_prefix_ssl":"https://partner.ads.mixi.jp/","url_pr_prefix":"http://pr.mixi.jp/","url_corp_prefix":"http://mixi.co.jp/","url_seller_prefix_ssl":"https://seller.mixi.jp/","can_verify_recaptcha_v3":1,"url_ad_impact_prefix":"http://n2.ads.mreco0.jp/","url_mobile_prefix":"http://m.mixi.jp/","news_prefix":"http://news.mixi.jp/","url_fan_apps_prefix":"http://pageapps.mixi.jp/","url_smartphone_game_prefix":"http://sp.game.mixi.net/","url_corp_pr_prefix":"http://pr.mixi.co.jp/","url_img_ads_prefix":"http://img.ads.mreco0.jp/img/","login_member_id":null,"url_game_prefix":"http://mixi.jp/","url_gear_prefix_ssl":"https://gear.in.mixi.co.jp/","login_member_thumbnail_url":""}--></script>
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
(function(){
|
||||
if( !window['Mixi'] ){
|
||||
window.Mixi = {};
|
||||
}
|
||||
|
||||
var value;
|
||||
window.Mixi.Gateway = {
|
||||
getParam:function(key){
|
||||
if( !value ) {
|
||||
value = JSON.parse(document.getElementById('js-gateway').text.replace(/^<!--(.*)-->$/, '$1'));
|
||||
}
|
||||
if( !key ){
|
||||
return value;
|
||||
}
|
||||
return value[key];
|
||||
}
|
||||
};
|
||||
})();
|
||||
--></script>
|
||||
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/lib/prototype-effects-1.6.0.2-1.8.1-compress.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/lib/underscore-string-1.3.3-2.0.0-compress.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/lib/namespace-1.0.1-brook-compress.js?1588032377" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/mixi.js?1514732400" crossorigin="anonymous"></script><!-- / header javascript -->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// universal analytics (analytics.js)
|
||||
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ga('create', 'UA-50931519-16', 'mixi.jp', {
|
||||
'sampleRate': 10,
|
||||
'name': 'global_raw_url'
|
||||
|
||||
});
|
||||
|
||||
|
||||
ga('global_raw_url.require', 'displayfeatures');
|
||||
|
||||
|
||||
ga('global_raw_url.set', {"dimension1":"no_login","dimension2":"none"});
|
||||
|
||||
|
||||
ga('global.set', {"dimension15":location.protocol});
|
||||
|
||||
ga('global_raw_url.send', 'pageview');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ga('create', 'UA-50931519-1', 'mixi.jp', {
|
||||
'name': 'global'
|
||||
});
|
||||
|
||||
|
||||
ga('global.require', 'displayfeatures');
|
||||
|
||||
ga('global.set', {
|
||||
'page': decodeURIComponent("%2Fhome.pl%3Fq%3Dportal")
|
||||
});
|
||||
|
||||
|
||||
ga('global.set', {"dimension1":"no_login","dimension2":"none"});
|
||||
|
||||
|
||||
ga('global.set', {"dimension15":location.protocol});
|
||||
|
||||
ga('global.send', 'pageview');
|
||||
|
||||
|
||||
|
||||
var _mixiGaEnabledTrackerList = ["global_raw_url","global"];
|
||||
var _mixiGaTimingInfo = { startTime: (new Date()).getTime() };
|
||||
</script>
|
||||
|
||||
<!-- Google Tag Manager -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WQRBQVS"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-WQRBQVS');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="page" class="FRAME2016_page">
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
// Disable iframe encapsulation
|
||||
if (window != top) top.location.href = location.href;
|
||||
//]]></script>
|
||||
|
||||
|
||||
|
||||
<div class="COMMONDOC_header2017_headerArea widget"
|
||||
data-widget-namespace="jp.mixi.menu.widget.pc.header"
|
||||
data-global-navi=".JS_globalNavi"
|
||||
data-drawer=".JS_drawer"
|
||||
data-drawer-toggle-button=".JS_drawerToggleButton"
|
||||
data-drawer-toggle-button-toggle-class="STATE_closeNav"
|
||||
data-drawer-header-area=".JS_drawerHeaderArea"
|
||||
data-drawer-menu-area=".JS_drawerMenuArea"
|
||||
data-drawer-bottom-margin="30"
|
||||
>
|
||||
|
||||
<div class="COMMONDOC_header2017_globalNavArea JS_globalNavi">
|
||||
<div class="COMMONDOC_header2017_globalNav MXARIA2018_header01" role="banner">
|
||||
<div class="COMMONDOC_header2017_globalNav__toggleNav"><div class="COMMONDOC_header2017_toggleNav"><a href="#mainNav" onclick="return false;" class="COMMONDOC_header2017_navTrigger JS_drawerToggleButton"><span class="COMMONDOC_header2017_hamburgerNavBar"></span></a><div class="COMMONDOC_header2017_mainNav JS_drawer" style="display:none;"><div class="COMMONDOC_header2017_mainNavHeader JS_drawerHeaderArea"><a href="https://mixi.jp/login.pl?next_url=https%3A%2F%2Fmixi.jp%2F&from=drawer_menu" class="COMMONDOC_header2017_mainNavAccountLabel"><span class="COMMONDOC_header2017_mainNavAccountLabel__thumbnail" style="background-image:url(https://img.mixi.net/img/basic/common/noimage_member180.gif);"></span><span class="COMMONDOC_header2017_mainNavAccountLabel__userName">ログイン</span></a></div><dl class="COMMONDOC_header2017_mainNavList JS_drawerMenuArea"><dt class="COMMONDOC_header2017_mainNavListTitle">サービス</dt><dd><a href="https://mixi.jp/search_community.pl?from=drawer_menu&search_mode=title" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--community">コミュニティ</a></dd><dd><a href="https://news.mixi.jp/?from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--news">ニュース</a></dd><dd><a href="http://mixi.jp/redirector.pl?id=4950&from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--game">ゲーム</a></dd><dd><a href="http://page.mixi.jp/page_portal.pl?from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--page">ページ</a></dd><dd><a href="https://open.mixi.jp/diary?from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--openDiary">みんなの日記</a></dd><dd><a href="https://mixi.jp/search_item.pl?from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--review">レビュー</a></dd><dt class="COMMONDOC_header2017_mainNavListTitle">その他</dt><dd><a href="http://mixi.jp/release_info.pl?from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--releaseInfo">運営者からのお知らせ</a></dd><dd><a href="http://mixi.jp/premium.pl?from=drawer_menu" class="COMMONDOC_header2017_mainNavLink COMMONDOC_header2017_mainNavLink--premium">mixiプレミアム</a></dd></dl></div></div></div>
|
||||
|
||||
<div class="COMMONDOC_header2017_globalNav__logo"><a href="http://mixi.jp/home.pl?from=g_navi" class="COMMONDOC_header2017_mainLogo"><img class="COMMONDOC_header2017_mainLogoImg" src="https://img.mixi.net/img/basic/icon/logo_mixi001.svg" alt="mixi" width="42" height="18" /></a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="COMMONDOC_header2017_adBanner MXARIA2018_ad01" role="complementary" aria-label="広告">
|
||||
<div id="div-gpt-ad-1520326808867-0"
|
||||
class="adsbygoogle bigBanner_largeBigBanner_billboard widget"
|
||||
aria-hidden="true"
|
||||
data-widget-namespace="jp.mixi.adnetwork.google.dfp.widget"
|
||||
data-image-size="728x90,970x90,970x250"
|
||||
data-ad-area-name="header_v2"
|
||||
data-ad-channel="PC_default_header_v2_logout"
|
||||
data-ad-client="421814808"
|
||||
data-adnetwork-type="doubleclick_for_publishers"
|
||||
data-ad-slot="div-gpt-ad-1520326808867-0"
|
||||
|
||||
data-key-value="view=pc&scriptPath=home.pl&is_game=0&ut=0&protocol=https&is_login=0&is_ad_disabled=0&env=production"
|
||||
|
||||
|
||||
|
||||
|
||||
data-is-amazon-header-bidding-enabled="1"
|
||||
data-amazon-header-bidding-slot-name="p_mixi_970x250_PC-default-header-v2-logout_7268"
|
||||
|
||||
|
||||
data-prebid-header-bidding-params-json="{"970x250":[{"params":{"placementId":"54061"},"bidder":"yieldone"},{"params":{"zoneId":"1148064","accountId":"12046","siteId":"231906"},"bidder":"rubicon"},{"params":{"adSlot":"div-gpt-ad-1520326808867-0@970x250","publisherId":"156959"},"bidder":"pubmatic"},{"params":{"usePaymentRule":true,"placementId":"17644453"},"bidder":"appnexusAst"},{"params":{"placementId":"86793"},"bidder":"yieldone"},{"params":{"zoneId":"1148064","accountId":"12046","siteId":"231906"},"bidder":"rubicon"},{"params":{"usePaymentRule":true,"placementId":"18107967"},"bidder":"appnexusAst"},{"params":{"asi":"2AXZYkEWR"},"bidder":"aja"},{"params":{"network":"15155.1","placement":"5220601","region":"as"},"bidder":"aol"}],"970x90":[{"params":{"usePaymentRule":true,"placementId":"17644452"},"bidder":"appnexusAst"}],"728x90":[{"params":{"placementId":"54062"},"bidder":"yieldone"},{"params":{"zoneId":"1148064","accountId":"12046","siteId":"231906"},"bidder":"rubicon"},{"params":{"adSlot":"div-gpt-ad-1520326808867-0@728x90","publisherId":"156959"},"bidder":"pubmatic"},{"params":{"usePaymentRule":true,"placementId":"17644451"},"bidder":"appnexusAst"},{"params":{"asi":"DgGTbrLiR"},"bidder":"aja"},{"params":{"placementId":"85540"},"bidder":"yieldone"},{"params":{"zoneId":"1148064","accountId":"12046","siteId":"231906"},"bidder":"rubicon"},{"params":{"usePaymentRule":true,"placementId":"18107926"},"bidder":"appnexusAst"},{"params":{"asi":"2AXZYkEWR"},"bidder":"aja"},{"params":{"network":"15155.1","placement":"5220594","region":"as"},"bidder":"aol"}]}"
|
||||
|
||||
|
||||
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="bodyArea" class="FRAME2016_bodyArea">
|
||||
|
||||
<div id="bodyMain" class="FRAME2016_bodyMain">
|
||||
|
||||
<div class="sectionHeader">
|
||||
<h2 class="news">mixiニュース</h2>
|
||||
<p><a href="https://news.mixi.jp/">mixiニュースへ</a></p>
|
||||
<!--/sectionHeader--></div>
|
||||
|
||||
<div class="newsContent sectionContent">
|
||||
<ul class="newsList">
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127508&media_id=168">定期購入契約のトラブル増加</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level02"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127508">336</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127617&media_id=4">子ども2人監禁容疑 父親を逮捕</a><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127617">233</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127865&media_id=2">絶滅危惧種ツシマヤマネコ死ぬ</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127865">148</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127738&media_id=8">ジャニーズ林翔太結婚、Jr卒業</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127738">162</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127905&media_id=54">与田祐希 生放送で髪バッサリ</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127905">74</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127736&media_id=137">戸田恵梨香で一番好きな役は</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127736">196</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127533&media_id=54">元「あいのり」桃が再婚を報告</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127533">294</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127700&media_id=202">牛さんクレープ販売終了の理由</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127700">183</a></span></li>
|
||||
|
||||
<li><a href="https://news.mixi.jp/view_news.pl?id=6127852&media_id=2">マスクなし 86%が「気になる」</a><img class="photoIcon" src="https://img.mixi.net/img/public/pc/icon/news_photo001.gif" width="14" height="11" alt="写真" /><span class="reactionCount level02"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127852">439</a></span></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="photoNews">
|
||||
<ul>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<h3>フォトニュース</h3>
|
||||
<span class="photoUpIcon"><img src="https://img.mixi.net/img/public/pc/icon/photoup001.gif" height="25" width="21" alt="up" />
|
||||
</span>
|
||||
<div class="photo">
|
||||
<a href="https://news.mixi.jp/view_photo_group.pl?group_id=1866">
|
||||
<img src="https://img.mixi.net/photo/news/2_20200618_175_002_160x160.jpg" alt="愛らしい赤ちゃん" /></a>
|
||||
</div>
|
||||
<p class="title"><a href="https://news.mixi.jp/view_photo_group.pl?group_id=1866">愛らしい赤ちゃん</a></p>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<h3>話題のニュース</h3>
|
||||
<span class="photoUpIcon"><img src="https://img.mixi.net/img/public/pc/icon/photoup001.gif" height="25" width="21" alt="up" /></span>
|
||||
<div class="photo">
|
||||
<a href="https://news.mixi.jp/view_news.pl?id=6127262&media_id=100"><img src="https://img.mixi.net/photo/news/100_20200620_7774210_001_160x160.jpg" alt="(左から)エマ・ワトソン、ダニエル・ラドクリフ、ルパート・グリント (C)AFLO" /></a>
|
||||
</div>
|
||||
<p class="title">
|
||||
<a href="https://news.mixi.jp/view_news.pl?id=6127262&media_id=100">ハリー・ポッター子役たちの今</a>
|
||||
<span class="reactionCount level01"><a href="https://news.mixi.jp/list_quote.pl?type=voice&sort=feedback_count&news_id=6127262">90</a></span>
|
||||
</p>
|
||||
<p class="media">クランクイン!</p>
|
||||
<p class="date">2020年06月20日 09:41</p>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!--/newsContent--></div>
|
||||
|
||||
|
||||
|
||||
<div class="adArea01 MXARIA2018_ad01" role="complementary" aria-label="広告">
|
||||
<div class="adL" aria-hidden="true">
|
||||
<div class="adMain">
|
||||
<div id="div-gpt-ad-1481095828717-0"
|
||||
class="adsbygoogle square_rectangle widget"
|
||||
data-widget-namespace="jp.mixi.adnetwork.google.dfp.widget"
|
||||
data-image-size="250x250,300x250"
|
||||
data-ad-area-name="portal_footer_left"
|
||||
data-ad-channel="PC_portal_footer_left"
|
||||
data-ad-client="421814808"
|
||||
data-adnetwork-type="doubleclick_for_publishers"
|
||||
data-ad-slot="div-gpt-ad-1481095828717-0"
|
||||
|
||||
data-key-value="view=pc&scriptPath=home.pl&is_game=0&ut=0&protocol=https&is_login=0&is_ad_disabled=0&env=production"
|
||||
|
||||
|
||||
|
||||
|
||||
data-is-amazon-header-bidding-enabled="1"
|
||||
data-amazon-header-bidding-slot-name="p_mixi_300x250_PC-portal-footer-left_7268"
|
||||
|
||||
|
||||
data-prebid-header-bidding-params-json="{"300x250":[{"params":{"placementId":"85549"},"bidder":"yieldone"},{"params":{"zoneId":"1530652","accountId":"12046","siteId":"231906"},"bidder":"rubicon"},{"params":{"usePaymentRule":true,"placementId":"18107981"},"bidder":"appnexusAst"},{"params":{"asi":"wS9ZLzPZg"},"bidder":"aja"},{"params":{"network":"15155.1","placement":"5220528","region":"as"},"bidder":"aol"}]}"
|
||||
|
||||
|
||||
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="adR" aria-hidden="true">
|
||||
<div class="adMain">
|
||||
<div id="div-gpt-ad-1481095907263-0"
|
||||
class="adsbygoogle square_rectangle widget"
|
||||
data-widget-namespace="jp.mixi.adnetwork.google.dfp.widget"
|
||||
data-image-size="250x250,300x250"
|
||||
data-ad-area-name="portal_footer_right"
|
||||
data-ad-channel="PC_portal_footer_right"
|
||||
data-ad-client="421814808"
|
||||
data-adnetwork-type="doubleclick_for_publishers"
|
||||
data-ad-slot="div-gpt-ad-1481095907263-0"
|
||||
|
||||
data-key-value="view=pc&scriptPath=home.pl&is_game=0&ut=0&protocol=https&is_login=0&is_ad_disabled=0&env=production"
|
||||
|
||||
|
||||
|
||||
|
||||
data-is-amazon-header-bidding-enabled="1"
|
||||
data-amazon-header-bidding-slot-name="p_mixi_300x250_PC-portal-footer-right_7268"
|
||||
|
||||
|
||||
data-prebid-header-bidding-params-json="{"300x250":[{"params":{"placementId":"85550"},"bidder":"yieldone"},{"params":{"zoneId":"1530654","accountId":"12046","siteId":"231906"},"bidder":"rubicon"},{"params":{"usePaymentRule":true,"placementId":"18107982"},"bidder":"appnexusAst"},{"params":{"asi":"IO9ZYkEZg"},"bidder":"aja"},{"params":{"network":"15155.1","placement":"5220540","region":"as"},"bidder":"aol"}]}"
|
||||
|
||||
|
||||
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--/adArea01--></div>
|
||||
|
||||
|
||||
<div class="sectionHeader">
|
||||
<h2 class="community">mixiコミュニティ</h2>
|
||||
<p><a href="https://mixi.jp/search_community.pl">mixiコミュニティへ</a></p>
|
||||
<!--/sectionHeader--></div>
|
||||
|
||||
<div class="communityContent sectionContent">
|
||||
|
||||
<ul class="thumbnailList col4">
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=6139754"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/97/54/6139754_33.jpg" alt="【スマイル空港】 「編隊飛行」" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=6139754">【スマイル空港】 「編隊飛行」</a>(241)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=641"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/6/41/641_218.jpg" alt="広島東洋カープ" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=641">広島東洋カープ</a>(56084)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=1310545"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/5/45/1310545_60.jpg" alt="静岡で人脈広げたい!!in mixi" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=1310545">静岡で人脈広げたい!!in mixi</a>(9593)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=1291838"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/18/38/1291838_150.gif" alt="栃木県民" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=1291838">栃木県民</a>(19779)</span>
|
||||
</li>
|
||||
<!--/thumbnailList--></ul>
|
||||
|
||||
<ul class="thumbnailList col5">
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=1655472"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/54/72/1655472_202.jpg" alt="50代 集まれ!!!" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=1655472">50代 集まれ!!!</a>(5839)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=3263134"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/31/34/3263134_78.jpg" alt="熟年 60代&70代の会" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=3263134">熟年 60代&70代の会</a>(1377)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=3993718"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/37/18/3993718_24.jpg" alt="自衛隊 フレンドシップコミュ" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=3993718">自衛隊 フレンドシップコミュ</a>(6183)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=971801"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/18/1/971801_94.jpg" alt="お洒落な女の子が好き" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=971801">お洒落な女の子が好き</a>(84856)</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="https://mixi.jp/view_community.pl?id=6344436"><img src="https://logo-imagecluster.img.mixi.jp/photo/comm/44/36/6344436_246.png" alt="西武ライオンズファン集いの場所" /></a>
|
||||
<span class="name"><a href="https://mixi.jp/view_community.pl?id=6344436">西武ライオンズファン集いの場所</a>(95)</span>
|
||||
</li>
|
||||
<!--/thumbnailList--></ul>
|
||||
|
||||
<!--/communityContent--></div>
|
||||
|
||||
|
||||
|
||||
<div class="sectionHeader">
|
||||
<h2 class="game">mixiゲーム</h2>
|
||||
<p><a href="https://mixi.jp/search_game.pl">mixiゲームへ</a></p>
|
||||
<!--/sectionHeader--></div>
|
||||
|
||||
<div class="gameContent sectionContent">
|
||||
|
||||
<ul class="thumbnailList col4">
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=41803"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/18/3/41803_13s.jpg" alt="あやかしっくレコード" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=41803">あやかしっくレコード</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=21518"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/15/18/21518_2s.gif" alt="Webサカ" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=21518">Webサカ</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=40796"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/7/96/40796_1s.png" alt="ハッピーベジフル" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=40796">ハッピーベジフル</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=6598"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/65/98/6598_63s.jpg" alt="ブラウザ三国志 for mixi" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=6598">ブラウザ三国志 for mixi</a></span>
|
||||
</li>
|
||||
<!--/thumbnailList--></ul>
|
||||
|
||||
<ul class="thumbnailList col5">
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=41681"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/16/81/41681_89s.jpg" alt="騎士と翼のフロンティア" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=41681">騎士と翼のフロンティア</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=32291"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/22/91/32291_253s.jpg" alt="英雄クロニクル" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=32291">英雄クロニクル</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=41508"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/15/8/41508_17s.jpg" alt="キャンディ・バレー" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=41508">キャンディ・バレー</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=41334"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/13/34/41334_126s.jpg" alt="りっく☆じあ~す" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=41334">りっく☆じあ~す</a></span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<a class="thumbnail" href="http://mixi.jp/view_appli.pl?id=40413"><img src="https://logo-imagecluster.img.mixi.jp/photo/appli_logo_100k/4/13/40413_247s.jpg" alt="楽園生活 ひつじ村" /></a>
|
||||
<span class="name"><a href="http://mixi.jp/view_appli.pl?id=40413">楽園生活 ひつじ村</a></span>
|
||||
</li>
|
||||
<!--/thumbnailList--></ul>
|
||||
|
||||
<!--/gameContent--></div>
|
||||
|
||||
|
||||
<!--/bodyMain--></div>
|
||||
|
||||
<div id="bodySub" class="FRAME2016_bodySub">
|
||||
|
||||
<div class="PORTAL_loginForm sideSection">
|
||||
<h2 class="PORTAL_loginForm__title">mixiに新規登録・ログイン</h2>
|
||||
<p class="PORTAL_loginForm__register"><a href="https://mixi.jp/register.pl?from=login0_form" class="PORTAL_loginForm__button PORTAL_loginForm__button--register">新規登録はこちら!<span class="PORTAL_loginForm__registerFreeText">(無料)</span></a></p>
|
||||
<div class="PORTAL_loginForm__inner">
|
||||
<form
|
||||
action="https://mixi.jp/login.pl?from=login0"
|
||||
method="post"
|
||||
name="login_form"
|
||||
class="widget"
|
||||
data-widget-namespace="jp.mixi.ui.form.widget.recaptcha.v3"
|
||||
data-token-field-name="recaptcha_v3_token"
|
||||
data-action-name="login"
|
||||
>
|
||||
<input type="hidden" value="/" name="next_url" />
|
||||
<input type="hidden" value="fa51a9e9d90d556abf5222488ff6a4eb" name="post_key" />
|
||||
<input type="hidden" value="" name="postkey" />
|
||||
|
||||
<p class="PORTAL_loginForm__inputTextBlock">
|
||||
<label class="PORTAL_loginForm__inputLabel02">
|
||||
<span class="PORTAL_loginForm__inputLabelFace">ログインメールアドレス</span>
|
||||
<input type="text" value="" name="email" size="30" tabindex="1" class="PORTAL_loginForm__inputText widget" data-widget-namespace="jp.mixi.ui.form.widget.email.normalize" />
|
||||
|
||||
</label>
|
||||
</p>
|
||||
<p class="PORTAL_loginForm__inputTextBlock">
|
||||
<label class="PORTAL_loginForm__inputLabel02">
|
||||
<span class="PORTAL_loginForm__inputLabelFace">パスワード</span>
|
||||
<input type="password" name="password" size="30" tabindex="2" class="PORTAL_loginForm__inputText" />
|
||||
</label>
|
||||
</p>
|
||||
<p class="PORTAL_loginForm__inputBlock"><input type="checkbox" checked="checked" id="auto" name="sticky" tabindex="3" class="PORTAL_loginForm__inputCheckBox"><label for="auto" class="PORTAL_loginForm__inputLabel">次回から自動的にログイン</label></p>
|
||||
<p class="PORTAL_loginForm__textBlock">
|
||||
<a href="https://mixi.jp/guide_login_failed.pl">ログインでお困りの方はこちら</a><br />
|
||||
<a href="https://mixi.jp/help.pl?mode=item&item=1359">画像選択の画面が表示されたら?</a>
|
||||
</p>
|
||||
|
||||
<p class="PORTAL_loginForm__buttonBlock"><input type="submit" value="ログイン" tabindex="4" class="PORTAL_loginForm__button PORTAL_loginForm__button--gold"></p>
|
||||
|
||||
<p class="PORTAL_loginForm__orText">─ または ─</p>
|
||||
|
||||
<p class="PORTAL_loginForm__buttonBlock"><a href="https://mixi.jp/twitter_redirect.pl?next_url=%2F&mode=login" class="PORTAL_loginForm__button PORTAL_loginForm__button--twitter">Twitterでログイン</a></p>
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
if (window === top) { document.login_form.email.focus(); }
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="adArea02 sideSection MXARIA2018_ad01" role="complementary" aria-label="広告">
|
||||
<div class="ad" aria-hidden="true">
|
||||
<div class="adMain">
|
||||
<div id="div-gpt-ad-1478851098327-0"
|
||||
class="adsbygoogle square_rectangle_lrectangle widget"
|
||||
data-widget-namespace="jp.mixi.adnetwork.google.dfp.widget"
|
||||
data-image-size="250x250,300x250,336x280"
|
||||
data-ad-area-name="portal_right_middle"
|
||||
data-ad-channel="PC_portal_right_middle"
|
||||
data-ad-client="421814808"
|
||||
data-adnetwork-type="doubleclick_for_publishers"
|
||||
data-ad-slot="div-gpt-ad-1478851098327-0"
|
||||
|
||||
data-key-value="view=pc&scriptPath=home.pl&is_game=0&ut=0&protocol=https&is_login=0&is_ad_disabled=0&env=production"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--/adArea02--></div>
|
||||
|
||||
<div class="recommendWord sideSection"><h2>おすすめmixiワード</h2><div class="contents"><ul><li><a href="http://mixi.jp/word/k/%E3%83%98%E3%82%A2%E3%82%A2%E3%83%AC%E3%83%B3%E3%82%B8">ヘアアレンジ</a></li><li><a href="http://mixi.jp/word/k/%E6%98%A0%E7%94%BB">映画</a></li><li><a href="http://mixi.jp/word/k/%E3%82%AD%E3%83%A3%E3%83%83%E3%83%88%E3%82%BF%E3%83%AF%E3%83%BC">キャットタワー</a></li><li><a href="http://mixi.jp/word/k/%E6%98%9F%E5%BA%A7%E5%8D%A0%E3%81%84">星座占い</a></li><li><a href="http://mixi.jp/word/k/%E5%90%8C%E5%B9%B4%E4%BB%A3">同年代</a></li><li><a href="http://mixi.jp/word/k/%E8%A1%97%E3%82%B3%E3%83%B3">街コン</a></li><li><a href="http://mixi.jp/word/k/%E3%82%AB%E3%83%A9%E3%82%AA%E3%82%B1">カラオケ</a></li><li><a href="http://mixi.jp/word/k/%E3%82%B2%E3%83%BC%E3%83%A0">ゲーム</a></li><li><a href="http://mixi.jp/word/k/%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E4%B8%89%E5%9B%BD%E5%BF%97%20for%20mixi">ブラウザ三国志 for mixi</a></li><li><a href="http://mixi.jp/word/k/%E6%88%A6%E5%9B%BD%E3%82%B5%E3%83%BC%E3%82%AC">戦国サーガ</a></li></ul></div><!--/recommendWord--></div>
|
||||
|
||||
<div class="mixiService sideSection">
|
||||
<h2>mixiのサービス</h2>
|
||||
<div class="contents">
|
||||
<ul>
|
||||
<li class="community"><a href="https://mixi.jp/search_community.pl">mixiコミュニティ</a></li>
|
||||
<li class="news"><a href="https://news.mixi.jp/">mixiニュース</a></li>
|
||||
<li class="game"><a href="https://mixi.jp/search_game.pl">mixiゲーム</a></li>
|
||||
<li class="word"><a href="http://mixi.jp/word/">mixiワード</a></li>
|
||||
<li class="event"><a href="https://mixi.jp/event/">イベント</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
<!--/mixiService--></div>
|
||||
|
||||
<!--/bodySub--></div>
|
||||
|
||||
<!--/bodyArea--></div>
|
||||
|
||||
|
||||
|
||||
<div id="footer" class="FRAME2016_footer MXARIA2018_footer01" role="contentinfo">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="COMMONDOC_footerNav COMMONDOC_footerNav--typeLogout COMMONDOC_footerNav--typePortal"><!--
|
||||
|
||||
--><ul class="COMMONDOC_footerNavGroup COMMONDOC_footerNavGroup--isLinkToMixiImportant"><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://sns.mixi.co.jp/service.html">mixiについて</a></li><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://mixi.jp/rules.pl">利用規約</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://mixi.jp/inquiry.pl">お問い合わせ</a></li><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--></ul>
|
||||
<!--
|
||||
|
||||
--><ul class="COMMONDOC_footerNavGroup COMMONDOC_footerNavGroup--isLinkToMixiProducts"><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://mixi.jp/search_game.pl" target="_blank">mixiゲーム</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://mixi.jp/search_community.pl" target="_blank">mixiコミュニティ</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://mixi.jp/event/" target="_blank">イベント</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://news.mixi.jp/" target="_blank">mixiニュース</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://page.mixi.jp/" target="_blank">mixiページ</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://mixi.jp/word/" target="_blank">mixiワード</a></li><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--></ul>
|
||||
<!--
|
||||
|
||||
--><ul class="COMMONDOC_footerNavGroup COMMONDOC_footerNavGroup--isLinkToCommunities"><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--></ul>
|
||||
<!--
|
||||
|
||||
--><ul class="COMMONDOC_footerNavGroup COMMONDOC_footerNavGroup--isLinkToOurProducts"><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://www.monster-strike.com/" target="_blank">モンスト</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="https://mitene.us/" target="_blank">子供の写真・動画を共有</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://minimodel.jp/" target="_blank">美容室予約</a></li><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--></ul><!--
|
||||
|
||||
--><ul class="COMMONDOC_footerNavGroup COMMONDOC_footerNavGroup--isLinkToMixiEfforts"><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://mixi.co.jp/" target="_blank">運営会社</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://mixi.co.jp/privacy/" target="_blank">プライバシーポリシー</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://mixi.co.jp/csr/kenzen/mixi/safety01/" target="_blank">健全化の取り組み</a></li><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--></ul><!--
|
||||
|
||||
--><ul class="COMMONDOC_footerNavGroup COMMONDOC_footerNavGroup--isLinkToMixiOthers"><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://developer.mixi.co.jp/?from=footer" target="_blank">開発者向け情報</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://mixi.co.jp/recruit/" target="_blank">人材募集</a></li><!--
|
||||
--><li class="COMMONDOC_footerNavItem"><a href="http://www.find-job.net/" target="_blank">転職サイト</a></li><!--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--></ul><!--
|
||||
|
||||
--><!-- /COMMONDOC_footerNav --></div>
|
||||
|
||||
|
||||
|
||||
<p class="copyright">Copyright (C) 1999-2020 mixi, Inc. All rights reserved.</p>
|
||||
<!--/footer--></div>
|
||||
|
||||
<!--/page--></div>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/lib/jquery-1.7.1.min-noconflict-compress.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/build/co-mixi.production.js?1592552090" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/build/mixi-model.production.js?1592552073" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/build/mixi-ui.production.js?1592552073" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/build/mixi-analysis.production.js?1592552073" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/build/mixi-menu.pc.production.js?1592552073" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/lib/prototype/replacer_for_array_prototype.js?1514732400" crossorigin="anonymous"></script>
|
||||
<script type="text/javascript" charset="UTF-8" src="https://script.mixi.net/static/js/build/mixi-adnetwork.production.js?1592552073" crossorigin="anonymous"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--//<![CDATA[
|
||||
if( this.IS_STARTED_ENTRY_POINT ){
|
||||
alert("already loaded");
|
||||
}
|
||||
this.IS_STARTED_ENTRY_POINT = true;
|
||||
Namespace.use('brook.widget bindAllWidget').apply(function (ns) {
|
||||
ns.bindAllWidget.run();
|
||||
});
|
||||
//]]>--></script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
3
main/tests/data/euc-jp.txt
Normal file
3
main/tests/data/euc-jp.txt
Normal file
@ -0,0 +1,3 @@
|
||||
mixi(ミクシィ)は、友人・知人とのコミュニケーションをさらに便利に楽しくするSNSというサービスです。
|
||||
友人とコミュニケーションを楽しもう!
|
||||
mixi(ミクシィ)は、日記、写真共有、ゲームや便利ツール満載のアプリなど、さまざまなサービスで友人・知人とのコミュニケーションをさらに便利に楽しくする、日本最大規模のソーシャル・ネットワーキングサービスです。
|
1713
main/tests/data/euc-kr.html
Normal file
1713
main/tests/data/euc-kr.html
Normal file
File diff suppressed because one or more lines are too long
10
main/tests/data/euc-kr.txt
Normal file
10
main/tests/data/euc-kr.txt
Normal file
@ -0,0 +1,10 @@
|
||||
쇼핑몰핫딜, 쿠폰 및 이벤트, 사용기, 휴대폰 등 쇼핑 정보 제공
|
||||
사람이 좋아 함께하는 곳... 뽐뿌! 쇼핑특가, 휴대폰 정보의 중심지
|
||||
뽐뿌
|
||||
뽐뿌 - 사람이 좋아 함께하는 곳
|
||||
'결백' 박스오피스 선두 탈환…50만명 돌파
|
||||
'편의점 샛별이' 지창욱, 과거 김유정의 첫키스 상대였다...
|
||||
'백파더' 백종원 "농산물 생산·음식 판매자들에게 도움
|
||||
[내가 본 '조진웅'] '시간' 초과, '사람 냄새' 초과
|
||||
[TF인터뷰] 낯선 시리즈, 더 낯선 춤, 그래서 솔루션
|
||||
[TF씨네리뷰] '남자들'의 공놀이, '야구소녀'의 너클
|
2654
main/tests/data/shift_jis.html
Normal file
2654
main/tests/data/shift_jis.html
Normal file
File diff suppressed because it is too large
Load Diff
20
main/tests/data/shift_jis.txt
Normal file
20
main/tests/data/shift_jis.txt
Normal file
@ -0,0 +1,20 @@
|
||||
価格.com - 「買ってよかった」をすべてのひとに。
|
||||
「買ってよかった!」と思えるお買い物は価格.comから! パソコンや家電から、ファッション、食品に至るまで、あらゆる製品・サービスを、販売価格やクチコミ情報、ランキングなどの視点から比較・検討できる、お買い物支援サイトです。
|
||||
価格.com,価格,比較,値段,クチコミ,評価,ショッピング
|
||||
|
||||
在宅勤務に便利!Wi-Fiレンタル比較
|
||||
複数の中古車サイトをまとめて検索
|
||||
約30社のカードローンを徹底比較
|
||||
|
||||
ノートパソコン
|
||||
タブレット
|
||||
ハードディスク
|
||||
PCパーツ
|
||||
周辺機器
|
||||
|
||||
家電
|
||||
テレビ
|
||||
オーディオ
|
||||
生活・調理家電
|
||||
健康・美容家電
|
||||
>冷房器具
|
@ -0,0 +1,65 @@
|
||||
package com.google.refine.importing;
|
||||
|
||||
import static org.testng.AssertJUnit.assertEquals;
|
||||
import static org.testng.AssertJUnit.assertNotNull;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.refine.util.JSONUtilities;
|
||||
import com.google.refine.util.ParsingUtilities;
|
||||
|
||||
public class EncodingGuesserTests {
|
||||
|
||||
// Guessing isn't as reliable for single-byte encodings, so we focus on a few multi-byte
|
||||
// non-UTF8 encodings which are still in use (but <1% prevalence on web)
|
||||
static String[] ENCODINGS = {
|
||||
"big5",
|
||||
"euc-jp",
|
||||
"euc-kr",
|
||||
"shift_jis",
|
||||
};
|
||||
|
||||
private static File getTestDir() {
|
||||
String dir = ClassLoader.getSystemResource(ENCODINGS[0] + ".html").getPath();
|
||||
dir = dir.substring(0, dir.lastIndexOf('/'));
|
||||
return new File(dir);
|
||||
}
|
||||
|
||||
public class ImportingJobStub extends ImportingJob {
|
||||
|
||||
public ImportingJobStub() {
|
||||
super(1, getTestDir());
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getRawDataDir() {
|
||||
return this.dir;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodingGuesser() throws IOException {
|
||||
|
||||
for (String encoding : ENCODINGS) {
|
||||
ImportingJob job = new ImportingJobStub();
|
||||
ObjectNode config = job.getOrCreateDefaultConfig();
|
||||
ObjectNode filesObj = ParsingUtilities.evaluateJsonStringToObjectNode(
|
||||
String.format("{ \"files\": [ {\"location\": \"%s.txt\"}]}", encoding));
|
||||
JSONUtilities.safePut(config, "retrievalRecord", filesObj);
|
||||
|
||||
EncodingGuesser.guess(job);
|
||||
|
||||
ObjectNode retrievalRecord = job.getRetrievalRecord();
|
||||
assertNotNull(retrievalRecord);
|
||||
ArrayNode fileRecords = JSONUtilities.getArray(retrievalRecord, "files");
|
||||
assertNotNull(fileRecords);
|
||||
assertEquals(fileRecords.size(), 1);
|
||||
ObjectNode record = JSONUtilities.getObjectElement(fileRecords, 0);
|
||||
assertEquals(JSONUtilities.getString(record, "encoding", null).toLowerCase(), encoding);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user