質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

XPath(XML Path)

XML Path Language (XPath; XMLパス言語)は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文の事をいいます。XPathはXMLとは別の構文を使用します。XMLドキュメントの抽象、論理ストラクチャ上で動作します。

Qiita:Team

Qiita:Teamは、社内向けの情報共有ツールです。Markdown記法に対応しており、プレーンテキストを容易に書くことができます。また、日報や議事録などの投稿用テンプレート作成も簡単です。さらに、コメント機能やメンション機能も搭載されています。

Q&A

3回答

1628閲覧

curlmでqiitaにログインできない

Kommm

総合スコア20

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

XPath(XML Path)

XML Path Language (XPath; XMLパス言語)は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文の事をいいます。XPathはXMLとは別の構文を使用します。XMLドキュメントの抽象、論理ストラクチャ上で動作します。

Qiita:Team

Qiita:Teamは、社内向けの情報共有ツールです。Markdown記法に対応しており、プレーンテキストを容易に書くことができます。また、日報や議事録などの投稿用テンプレート作成も簡単です。さらに、コメント機能やメンション機能も搭載されています。

0グッド

0クリップ

投稿2019/01/02 08:58

編集2022/01/12 10:55

1/3更新しました

curl -c cookie.txt -d "identity=自分のID" -d "password=自分のパスワード" "https://qiita.com/login" curl -b cookie.txt -s -L "https://qiita.com" | xmllint --html --xpath '//a[@class="tr-Item_title"]' -

このコマンドで取得できるはずかと思ったのですが、なぜか取得できません。
他のページでは違うコマンドにはなりますが取得できましたので、useragentで拒否はしていないようです。

curl -s -L "https://qiita.com/search?q=python&sort=created" | xmllint --html --xpath "//h1/a" -

cookieの使い方が間違っているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

何の情報を取るつもりかはわかりませんが、APIがあるのでそちらをまず試してみてはいかがでしょう。

【Qiita API v2ドキュメント - Qiita:Developer】
https://qiita.com/api/v2/docs

投稿2019/01/02 09:46

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kommm

2019/01/02 10:25

回答ありがとうございます qiitaのAPIは非常に範囲が狭く、トレンドを抜き出したりもできないので直でやろうと思っております 今回でいえばトレンドです
退会済みユーザー

退会済みユーザー

2019/01/02 12:40

qiita って UAをみて拒否してた気がするが
Kommm

2019/01/02 15:13

回答ありがとうございます ログインが不要なページでは成功しているので、その可能性は低いと思われます curl -s -L "https://qiita.com/search?q=python&sort=created" | xmllint --html --xpath "//h1/a" - それに拒否されている場合は、capchaだったりが出現すると思います それがない、というところまでは調べられています
guest

0

かるくみてみた

16: HTML parser error : Tag svg invalid

パースできないから習得できないですね。ww

投稿2019/01/02 15:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kommm

2019/01/02 15:55

回答ありがとうございます html取得後、16行目のsvgだけがparseできる文法通りでなかっただけと思われます xmllintの部分のエラーのはずなので、はずしてみればcurl取得自体は成功してるのがわかると思います ログイン部分でつまづいてるのです・・・回答の1行目の curl -c cookie.txt -d "identity=自分のID" -d "password=自分のパスワード" "https://qiita.com/login" この部分です まだこねこねしててドロ試合です・・
退会済みユーザー

退会済みユーザー

2019/01/02 16:03

いや、XPATHで習得できない最大の理由
Kommm

2019/01/02 16:31

>>html取得後、16行目のsvgだけがparseできる文法通りでなかっただけと思われます と書きました通り別問題で・・・ xpathで習得できない理由は途中の行でerrorが出てるから、ではないです 見てるページがログイン後のページになってないから、指定のクラスを単純に見つけられてないのです、、、 なのでログイン云々の話をしてて。。。
guest

0

指定した xpath に一致する内容がないので、結果を取得できないのでしょう。


試しに

curl -s -L "https://qiita.com" | grep 'tr-Item_title'

を実行して見たら、出力がないので、class に tr-Item_title がないようです。

投稿2019/01/02 12:15

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kommm

2019/01/02 15:12

ご回答ありがとうございます 回答にもあるのですが、目的のページはログインが必要なページでして ご指摘のコマンドでは元々取得できないようになっています cookieを取る過程で失敗しているようです。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問