【邵奈一】Python爬虫コラム(一)のPython爬虫ウォーミングアップ
チュートリアルディレクトリ 0 0 x 00チュートリアル 0 x 01 Python環境準備 1. Windows環境 2. MacOS環境 0 x 02 Python文法熟知 1. Pythonシミュレーションログ生成例 2. 構文の例 3. データ型 0 x 03爬虫類初体験 0 xFFまとめ 0 x 00チュートリアルの内容なぜPython を学ぶのか学会インストールPython環境 Pythonの文法に詳しい Python爬虫類初体験 学習前提:1、プログラミングの基礎が必要で、Pythonに詳しくないことができます.
0 x 01 Python環境準備
1.Windows環境
手順は非常に簡単で、ここでは詳細に展開しません.チュートリアル:Python 3のインストール(Windows)を参照してください
2.MacOS環境
MacOSは一般的に2.XバージョンのPythonは、一般的にPython 3バージョンを追加します.操作はWindowsバージョンと似ていますが、ここでは詳しく説明しません.自分でチュートリアルを探すことができます.
0 x 02 Python文法熟知
1.Pythonシミュレーションログ生成例
コードおよびプレゼンテーションチュートリアル:Pythonシミュレーションログ生成
2.構文の例
1、文字セットの設定
2、パッケージのインポート
パッケージの特定のモジュールをインポートして名前を変更する必要がある場合は、
配列の最後の要素には英語のカンマを付ける必要はありません.文字列は他の言語と同じように、二重引用符で囲まれています.
4、関数の定義
関数体は、関数名の右側にコロン
5、forサイクル
任意にip_を取りますsplicesの4つの数字は、文字列に変換され、点
http_をランダムに取得referers、取得した場合:
コード解釈:1、
strftime()リファレンスチュートリアル:Python time strftime()メソッド
2、
Open()リファレンスチュートリアル:Pythonでのopen()メソッドのまとめ
3、
4、
main関数、メインメソッド.
3.データ型
1、Pythonには5つの標準的なデータ型がある
Pythonは4つの異なるデジタルタイプをサポートしています.
注意:Python 2.2以降のバージョンでは、intタイプのデータがオーバーフローすると自動的にlongタイプに移行します.longタイプはPython 2にのみ存在する.XバージョンではPython 3.Xバージョンではlongタイプが削除され、intで置き換えられます.
0 x 03爬虫類初体験体験チュートリアル:Python初の爬虫類プロジェクト 補足知識:
0 xFFまとめのコラムはホワイトチュートリアルではなく、プログラミングの基礎が必要で、Pythonの基礎さえ必要です. 実戦性が強く、だらだらしないで、いいね、コメント、コレクションをクリックして、引き続き下へ勉強してください.
邵奈一全桟エンジニア、市場洞察者、コラム編集|公衆番号|微信|微博|CSDN|簡書|
福祉:邵奈一の技術ブログは邵奈一のオリジナルをナビゲートするのは容易ではありません.転載したら出典を明記してください.
0 x 01 Python環境準備
1.Windows環境
手順は非常に簡単で、ここでは詳細に展開しません.チュートリアル:Python 3のインストール(Windows)を参照してください
2.MacOS環境
MacOSは一般的に2.XバージョンのPythonは、一般的にPython 3バージョンを追加します.操作はWindowsバージョンと似ていますが、ここでは詳しく説明しません.自分でチュートリアルを探すことができます.
0 x 02 Python文法熟知
1.Pythonシミュレーションログ生成例
コードおよびプレゼンテーションチュートリアル:Pythonシミュレーションログ生成
2.構文の例
1、文字セットの設定
#coding=UTF-8
2、パッケージのインポート
import random
パッケージの特定のモジュールをインポートして名前を変更する必要がある場合は、
from pyquery import PyQuery as pq
3、配列の定義url_paths = [
"article/112.html",
"article/113.html",
"article/114.html",
"article/115.html",
"article/116.html",
"article/117.html",
"article/118.html",
"article/119.html",
"video/821",
"tag/list"
]
ip_splices = [102,71,145,33,67,54,164,121]
配列の最後の要素には英語のカンマを付ける必要はありません.文字列は他の言語と同じように、二重引用符で囲まれています.
4、関数の定義
def sample_url():
return random.sample(url_paths,1)[0]
関数体は、関数名の右側にコロン
:
を付けるだけで、Python言語にはインデントが必要で、関数体の範囲はインデントによって確認されます.5、forサイクル
def sample_ip():
splice = random.sample(ip_splices,4)
return ".".join([str(item) for item in splice])
任意にip_を取りますsplicesの4つの数字は、文字列に変換され、点
.
で接続されています.def sample_referer():
if random.uniform(0, 1) > 0.2:
return "-"
refer_str = random.sample(http_referers, 1)
query_str = random.sample(search_keyword, 1)
return refer_str[0].format(query=query_str[0])
http_をランダムに取得referers、取得した場合:
https://www.baidu.com/s?wd={query},
さらにランダムにquery_を取得str、例えば:Docker Spark ( )
、そしてformatメソッドによってquery_strは{query}に付与され、最終的にはhttps://www.baidu.com/s?wd=Docker Spark ( )
と同様の結果が得られる.ここで注意しなければならないのはrandom.sample(http_referers, 1)
が1つの配列を取ったので、後で使用するときはrefer_str[0]
のような中の値を取る必要があります.def generate_log(count = 10):
time_str = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
f = open("D:\\python-logs.txt","w+")
while count >= 1:
generate_log = "{ip}\t{localtime}\t \"GET /{url} HTTP/1.1 \" \t{referer}\t{code}".format(
url = sample_url(),
ip = sample_ip(),
referer = sample_referer(),
code = sample_status_code(),
localtime = time_str
)
print generate_log
f.write(generate_log + "
")
count = count - 1
コード解釈:1、
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
、time.localtime()は、ローカル時間を取得し、特定のフォーマットでフォーマットします.strftime()リファレンスチュートリアル:Python time strftime()メソッド
2、
f = open("D:\\python-logs.txt","w+")
、新しいファイルf
w+
は、権限が読み書き可能であることを意味し、開くファイルがすでに存在する場合は、空になり、存在しない場合は作成されます.Open()リファレンスチュートリアル:Pythonでのopen()メソッドのまとめ
3、
print generate_log
、印刷出力4、
f.write(generate_log + "
")
、f
の書類に書きます.# URL IP referer
if __name__ == '__main__':
generate_log(100)
main関数、メインメソッド.
3.データ型
1、Pythonには5つの標準的なデータ型がある
Numbers
(数字)String
(文字列)List
(リスト)Tuple
(タプル)Dictionary
(辞書)Pythonは4つの異なるデジタルタイプをサポートしています.
int
(符号付き整数)long
(ロング整数[8進数と16進数を表すこともできる])float
(浮動小数点型)complex
(複数)注意:Python 2.2以降のバージョンでは、intタイプのデータがオーバーフローすると自動的にlongタイプに移行します.longタイプはPython 2にのみ存在する.XバージョンではPython 3.Xバージョンではlongタイプが削除され、intで置き換えられます.
0 x 03爬虫類初体験
!/usr/bin/python
と#!/usr/bin/env python
の違いは?#!/usr/bin/python
は、/usr/bin/
ディレクトリの下でpython
を探して#!/usr/bin/env python
を実行することを指し、#!/usr/bin/env
の中でpython
のインストールパスを見つけて実行することを指します.ここで実行可能なpythonパスは、/usr/binの下でもよいかどうかにかかわらず、使い方が柔軟ですが、#!/usr/bin/python
は絶対パスとして書かれており、/usr/bin
の下で探すしかありません.結論:#!/usr/bin/env python
の使用を推奨0 xFFまとめ
邵奈一全桟エンジニア、市場洞察者、コラム編集|公衆番号|微信|微博|CSDN|簡書|
福祉:邵奈一の技術ブログは邵奈一のオリジナルをナビゲートするのは容易ではありません.転載したら出典を明記してください.