python60行のコードで簡単なBiqugeクローラーを書いてください!3分の1の章?

序文

Pythonを使用して単純なBiqugeクローラーを作成し、入力した小説のURLに従って小説全体をクロールし、txtファイルに保存します。クローラーはBeautifulSoupライブラリのselectメソッドを使用し、結果を次の図に示します。

この記事はクローラーを学ぶためだけのものです

1.Webページ分析

Douluo Mainland NovelのURLの例は次のとおりです:http://www.biquge001.com/Book/2/2486/

各チャプターのWebページアドレスとチャプター名は<"divid = list dl dd a>のタグに配置されているため、BeautfulSoupのselectメソッドを使用してURLとチャプター名を取得できます。

Tag = BeautifulSoup(getHtmlText(url)、 "html.parser")#here getHtmlTextは、自分で作成したhtmlを取得するメソッドです
urls = Tag.select( "div #list dl dd a")

次に、リストを繰り返し処理します

url内のurlの場合:
    href = "http://www.biquge001.com/" + url ['href']#正しいURLへの文字列のスプライシング
    pageName = url.text#各章の名前

次に、各章のコンテンツが同じ方法で<div id = "content"に保存されます。

 

Substance = Tag.select( "div #content")#記事のコンテンツ

最後に、同じ方法で、ホームページで小説の名前を取得します<"div id = info h1>

 

 

bookName = Tag.select( "div #info h1")

2.コードを入力します

1.Htmlとwriteメソッドを取得します

def getHtmlText(url):
    r = requests.get(url、headers = headers)
    r.encoding = r.apparent_encoding#编码変換
    换r.raise_for_status()
    return r.text 

def writeIntoTxt(filename、content):
    with open(filename、 "w"、encoding = "utf-8")as f:
        f.write(content)
        f.close()
        print(filename + "已被害")

2.残りのコード

コードは次のとおりです(例):

url = "http://www.biquge001.com/Book/2/2486/" 
SubstanceStr 
= "" bookName1 = "" 
html = getHtmlText(url)
#このファイルが存在するかどうかを確認する
Tag = BeautifulSoup(getHtmlText(url)、 " html.parser ")
urls = Tag.select(" div #list dl dd a ")
bookName = Tag.select(" div #info h1 ")
for i in bookName:
    bookName1 = i.text 
if not os.path.exists (bookName1):
    os.mkdir(bookName1)
    print(bookName1 + "Created")
else:
    print( "ファイルが作成されました")
for url in urls:
    href = "http://www.biquge001.com/" + url ['href']#正しいURLを形成するための文字列の
    連結pageName = url。text#各チャプター
    パスのチャプター名= bookName1 + "\\"#パス
    fileName = path + url.text + ".txt"#ファイル名= path +チャプター名+ "。txt"
    Tag = BeautifulSoup(getHtmlText(href)、 "html.parser")#各ページを解析します
    substance = Tag.select( "div #content")#
    実質内のiの記事のコンテンツ
        substanceStr = i.text 
    writeIntoTxt(fileName 、substanceStr)
    time.sleep(1)

総括する

BeautfulSoupのselectメソッドを使用して、BiqugeのWebページをクロールするだけです。

最近、多くの友人がプライベートメッセージを通じてPythonの学習問題について相談しました。コミュニケーションを促進するには、青をクリックしてディスカッションに参加し、自分でリソースベースに回答してください

 

おすすめ

転載: blog.csdn.net/weixin_43881394/article/details/112521161