[Python] [クローラー]クライミング防止画像なしのクロール

これは、クライミング対策のない最も単純なクローラーです。間違ったドアに行くドナーは迂回することができます~~~

一つ、問題

エピデミックの影響を受けて、すべての学校のコースがオンライン教育を採用し、さまざまなコースが出現しました。すべてのコースグループのQRコードを一度に検索して問い合わせたいのですが、どうすればよいですか?

2.原則

1.ウェブページの写真のリンク形式を確認しますここに画像の説明を挿入します

学校が指定したウェブサイトを開いてコースのQRコードを照会し、画像に対応するhttpリクエストによって返された画像リンクを見つけ、すべての画像リンクがhttp://xxx.cn/os/pic/+课程号-课序号+.jpg同じ形式であることを確認します。したがって、対応するコース番号-コースシリアル番号が接続されている限り、クロールを完了することができます。

2.リクエストパッケージを使用して、関連するWebページの画像をクロールします

リクエストパッケージの最も単純なクローラー:

import requests
r = requests.get(url)

その後、保管作業をさらに完了することができます。

三、解く

#从csv读取所有课程号-课序号,并拼接成网页链接
import pandas as pd
csv_data = pd.read_csv('D:/.../999 project/5 testing_file/num.csv', encoding = 'ANSI')
urls = []
for i in csv_data['num']:
    urls.append("http://xxx.cn/os/pic/"+i+".jpg")

import requests
import os

root = "C://...//Desktop//lesson_QR_code/"
num = 0

#爬取课程二维码
for url in urls:
    num = num + 1
    path = root + url.split('/')[-1]
    try:
    	#如果不存在该目录,创建目录
        if not os.path.exists(root):
            os.mkdir(root)
        #如果文件不存在,爬取二维码并保存,若存在则打印“文件已存在”
        if not os.path.exists(path):
            r = requests.get(url)#实际上只有这一行是爬虫
            with open(path, 'wb') as f:
                f.write(r.content)#将二进制内容写入文件
                f.close()
                print(num,"文件保存成功")
        else:
            print(num,"文件已存在")
    except:
    	#如果发生异常,打印发生异常的课程号
        print(url.split('/')[-1])
        
print("爬取完毕")

四、反射

実際、コース番号-コース番号情報は、教育管理システムから手動でコピーして貼り付けることができます。ブロガーは現在、教育行政システムにログインして確認コードの問題を解決していません。問題が解決した後、手動でコピーして貼り付ける必要はありません(この問題が解決した場合は、コードを使用してレッスンを取得できます...)。

おすすめ

転載: blog.csdn.net/why_not_study/article/details/104592877