###環境: Mac OS 10.13.6, Python 3.8.5, Scrapy 2.2.1, botocore/2.0.0dev38, scrapy-s3pipeline 0.3.0, readability-lxml 0.8.1 前提・実現したいこと クローリングフレームワークのScrapyを使用してAWS S3のバケットにアップロードしたクロール結果htmlファイルを Pythonプログラムから参照し、htmlから本文抽出して検索エンジンのElasticsearchにインデックスする正しい方法を教えていただきたいです。 今回は以下の書籍の内容を組み合わせて、実験を行なっています。 「Python クローリング&スクレイピング データ収集・解析のための実践開発ガイド」 https://scraping-book.com/ 【クロール & S3へアップロード】 はてなブックマークの
Acquiring OakvilleMaids.com through HugeDomains was a good experience. We’ve operated our business on OakvilleMaids.ca for years, but securing the .com version was important to eliminate any customer confusion and strengthen our brand credibility. HugeDomains made the entire process easy! It was fast, clear, and hassle-free. We highly recommend them to any business looking to upgrade or protect th
はじめに 今回は、CiecleCIを使ったPythonのテストについて解説します。 この内容に決めた理由は、2つあります。 1つ目の理由は、CircleCIは1ヶ月1,000時間分まで無料で利用できるので、この事実をいろんな人に知って欲しかったからです。尚、無料なのは1並列でLinuxの自動テストをクラウド上で実行する場合に限ります。リポジトリのGitHubは法人でもprivateなリポジトリでも無料ですが、テストを並列で行ったり、MacOSでテストする場合は有料となります。 CircleCIは、リモート上のGitHubへプログラムを更新すると、すぐにCIを実施します。後で説明しますが、この手順には、CircleCIのアカウントを登録して、GitHub上のリポジトリを選んで、簡単な設定ファイルを準備するだけです。それだけで自分のPCのリソースを使わず、テストを実施することができます。 私は
まずはインポート import pandas as pd CSV, TSV pd.reed_csv(filename, header=None, names=['A', 'B'], index_col='A', ...) # filename以外は省略可能 # pd.reed_table()というメソッドもある。これは、sep=""パラメーターで区切り文字を指定できる。デフォルトはタブ Excel xls = pd.ExcelFile(filename) df = xls.parse('sheet_name') JSON import json json_data = json.loads(json_text) name = json_data[0]['name'] XML from lxml import objectify parsed = objectify.parse(open(x
BeautifulSoupを使ったパースプログラムでこんなエラーがでたことはないだろうか。 "HTMLParser.HTMLParseError: malformed start tag"要はBeautifulSoupのおつむじゃ理解出来ないHTMLタグがあるということ。どうやらスクリプトタグなんかを使ったちょっと複雑なものが理解出来ないみたい。 $ python hoge.py Traceback (most recent call last): File "hoge.py", line 78, in <module> main() File "hoge.py", line 40, in main soup = BeautifulSoup(html) File "build/bdist.linux-i686/egg/BeautifulSoup.py", line 1499, in __i
パブリックドメイン版 cflow には GNU cflow の -T, --tree * Draw ASCII art treeというオプションがないので、インデントで表された呼び出し構造(オフサイドルール?)をツリー形式に変換するコマンドを書いてみた。 #!/usr/bin/python import sys def getlevel(s): return len(s) - len(s.lstrip()) def parselist(lines): if len(lines) == 0: return [[], 0] tree = [] i = 0 currentlevel = getlevel(lines[0]) while i < len(lines): level = getlevel(lines[i]) if level > currentlevel: # Indent incr
i-sourceviewというのをGAE/Pythonでつくってみました。 i-sourceview hokaccha’s i-sourceview at master - GitHub 同じようなことはアプリとかJS(Bookmarklet)でできるんですけど、アプリだと別途立ち上げが必要だったり、JSだとDOCTYPEが取れなかったりシンタックスハイライトがなかったりします。なのでサーバー側からリクエストしてHTML取得してシンタックスハイライトしたり行番号もつけてみたりしました。 それでつくってみたものの、認証がかかってるページがとれなかったり、JSで書き換えた後のソースが見たい場合もあるなあと思って結局JSで取得するのも用意しました。この二つを併用すれば大体ことたりるかなと。 シンタックスとかはchromeのソースビューに合わせてみました。 こんな感じになります。
June 07, 201010:49 カテゴリwork 簡単!たった8行のコードで HTML取得&解析をするPythonスクリプト 簡単!たった13行のコードで HTML取得&解析をするPerlスクリプト を見てPythonならもっと簡単だなーと思ったので書いてみる。 import urllib2 from lxml import etree url = 'http://www.yahoo.co.jp' opener = urllib2.build_opener() opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)')] tree = etree.parse(opener.open(url),parser=etree.HTMLParser()
ExtractContent は、HTMLから本文を抽出するRubyモジュールです。 RubyForge: ExtractContent: Project Info Webページの本文抽出 (nakatani @ cybozu labs) Perl用の同名モジュールもありますが、今回はRubyモジュールを基にしてPythonへ移植してみました。 # -*- coding:utf-8 -*- import re import unicodedata class ExtractContent(object): # convert character to entity references CHARREF = { "nbsp" :" ", "lt" :"<", "gt" :">", "amp" :"&", "laquo":u"\xc2\xab", "raquo":u"\xc2\xbb", }
COREBlog使用時も生DTMLでエントリーを書き、tDiaryの勝手な整形よりMovableTypeでタグを手打ちする道を選んだ僕ですが、それでも箇条書きをHTMLで書くのは直感的でなさ過ぎるので嫌いです。 そこで、MovableTypeに「Wikiっぽい記法で書いた箇条書きをHTMLに変換してくれるタグ」を追加しようと思い、とりあえずそのアルゴリズムをPythonで書いてみました。(Perlでいきなり書く自信がなかったので) あ、誤解を避けるために書いておくと、もちろんPythonで構造化テキストを扱いたいだけならStructuredTextとかreStructuredTextで検索して適切なライブラリを使う方が楽だと思います。今回はあくまで自分好みの箇条書きフォーマットをHTMLに変換するPerlのプログラムを作るためのプロトタイプってことです。 特徴 インデントの深さで階層構造を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く