男性の同胞の大多数にとって、モバイルの壁紙やコンピューターの壁紙は見栄えがするのが好きではありませんか?それらの多くは数十行のコードで数分でダウンロードでき、使い切ることはできません。さあ、 それを示す!
寿命が短すぎる-私はPythonを使用しています
1.何か良いことをしたいのなら、まずその道具を研ぐ必要があります
1.開発環境
ここでは、Python 2でない限り、Python環境を使用します。エディターにはpycharmを使用します。バージョン21には便利なツールがたくさんあります。それを使用する人は誰でも、詳細には触れません。
公式ウェブサイトからダウンロードできるソフトウェアがない場合は、記事の左側または下部にあるコードをスキャンして取得することもできます。また、pycharmを永続的に使用する方法があります。
2.サードパーティモジュール
requests
parsel
requestsはデータリクエストモジュールであり、parselはデータを抽出して解析するためのモジュールであり、pipによって直接インストールできます。
3.モジュールと問題をインストールします
- Pythonサードパーティモジュールをインストールする場合:
- win + R cmdと入力します[OK]をクリックし、インストールコマンドを入力しますpip install module name(pip install requests)Enter
- pycharmのターミナルをクリックしてインストールコマンドを入力します
- インストール失敗の理由:
-
失敗1:pipは内部コマンドではありません
解決策:環境変数を設定します -
失敗2:多くの赤いレポートがあります(読み取りタイムアウト)
解決策:ネットワークリンクがタイムアウトしたため、ミラーソースを切り替える必要があります
Tsinghua:https://pypi.tuna.tsinghua.edu.cn/simpleAlibaba
cloud: http:// mirrors .aliyun.com / pypi / simple /
中国科学技術大学https://pypi.mirrors.ustc.edu.cn/simple/Huazhong
科学技術大学:http://pypi。 hustunique.com/Shandong
University of Technology:http:// pypi.sdutlinux.org/
Douban: http:
//pypi.douban.com/simple/例:pip3 install -i https://pypi.doubanio.com/シンプル/モジュール名 -
失敗3:cmdは、インストールされているか、インストールは成功しているが、それでもpycharmにインポートできないことを示しています
解決策:複数のPythonバージョンがインストールされている可能性があります(anacondaまたはpythonでインストール
できます)。設定されていないpycharmpythonインタープリターに入れてください
-
2.プロセス
1.データソース分析
クロールWebサイトとは何ですか。また、Webサイトから取得するデータコンテンツの種類。
たとえば、画像のクロール、画像からの
分析、開発者ツールによるパケットキャプチャ分析の実行、およびいくつかのパラメーターの比較必要な画像のURLアドレスの;
2.クローラーコードを実装する手順:
1)リクエストを送信し、分析から取得したURLアドレスのリクエストを送信します
- URLをリクエスト
- Requestメソッド
Requestヘッダーパラメーター>>>偽装はPythonコードをブラウザー(クライアント)に偽装して要求を送信できます
。偽装しないとどうなりますか>>>必要なデータが返されません。
2)データを取得し、応答サーバーから返された応答データを取得します
。3)データを解析し、画像のURLアドレスと必要なデータコンテンツの画像タイトルを抽出します
。4)データを保存し、保存します。ローカルの画像データ。
3.コード表示
1.モジュールをインポートします
import requests
import parsel
2.リクエストを送信します
- ヘッダー要求ヘッダーパラメーターは、開発者ツールで直接コピーでき、その後にヘッダーディクショナリデータ型、キーと値のペアが続きます
- user-agent:ユーザーエージェントはブラウザの基本IDを表します
- cookie:ユーザー情報。ユーザーがログインアカウントを持っているかどうかを検出します
for page in range(2, 11):
url = f'https://sj..com/woman/{page}.html'
headers = {
'cookie': 't=f2cf055ce8713058cbfdbd1561c38e86; r=1281; Hm_lvt_86200d30c9967d7eda64933a74748bac=1645625923,1646892448; Hm_lpvt_86200d30c9967d7eda64933a74748bac=1646894465',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}
response = requests.get(url=url, headers=headers) # <Response [200]> 返回响应对象 200状态码标识请求成功
3.データを取得する
サーバーから返されたデータの内容を取得し、応答オブジェクトのテキストデータを取得します。
print(response.text)
文字列データはデータコンテンツを返します。これは、開発者ツールで見たものとは異なります。つまり、サーバーによってクローラーとして認識されるため、データは返されません。
4.データを解析します
cssセレクターのxpathreは、3つの解析方法すべてで使用して、最適なものを選択できます。
cssセレクター:タグ属性に基づいてデータコンテンツを抽出します
response.textを取得するためにデータ型をセレクターオブジェクトに変換します
attr()属性selector.egeli_pic_li .egeli_pic_dl dd a
imgはポジショニングタグです。どのタグかを教えてください
img :: attr(src)imgタグでsrc属性データを取得しますgetall()すべてのタグコンテンツデータを取得しますリストデータ型を返します
selector = parsel.Selector(response.text)
src = selector.css('.egeli_pic_li .egeli_pic_dl dd a img::attr(src)').getall()
alt = selector.css('.egeli_pic_li .egeli_pic_dl dd a img::attr(alt)').getall()
for img_url, title in zip(src, alt):
img_url = img_url.replace('edpic_360_360', 'edpic_source')
4.データを保存します
img_content = requests.get(url=img_url, headers=headers).content # 获取二进制数据内容
with open('img\\' + title + '.jpg', mode='wb') as f:
f.write(img_content)
print(img_url, title)
第四に、エフェクト表示
壁紙には這う効果
で十分です。
ブラザーズ、記事を読むのにうんざりしています。少し運動をしてください。好きで好きになるのを手伝ってください。次回はもっと面白くなります。