日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ctf up怎么写 write_??零基础写网络爬虫的思路??

發布時間:2025/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ctf up怎么写 write_??零基础写网络爬虫的思路?? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡爬蟲,用一句話簡單總結,就是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。寫這篇文章的初衷是有個知友私信我說,模仿了很多網上用Python寫爬蟲的例子,但到了需要自己動手寫爬蟲的時候又不知道怎么寫了。我覺得出現這種情況還是很正常的,至少我個人是這么過來的。這篇文章僅供初學者寫爬蟲程序時作為一個參考,畢竟本人已經很久沒寫過爬蟲程序了,但爬蟲程序的大體框架我還是很清晰的,此篇展示的是我對爬蟲的一些理解。之前寫過的一些爬蟲程序PythonCrawler,有興趣的朋友可以看看,找找自信這些代碼現在看來寫的確實挺爛的 。

寫爬蟲遵循的基本框架

我自己在寫爬蟲時一般基本遵循下面的框架形式,按照這個框架來編寫代碼。

演示實例

通過對[ONE]這個網站的爬取來演示上述模塊的編寫,ONE網站的內容展示如下圖所示。

而數據我只爬取一張圖片和一句箴言,備注(該演示遠非最佳實踐,只是為了演示框架流程)。

  • url調度模塊編寫

通過對ONE網站的分析,發現它的翻頁就是在url后面的數字上加一進入下一頁。

ROOT_URL = "http://wufazhuce.com/one/" URL_NUM = 14 #14頁之后才開始有數據def yield_url(ROOT_URL, URL_NUM):return ROOT_URL + str(URL_NUM)
  • 網頁下載模塊編寫
import requests as rqdef get_html(url):return rq.get(url).content.decode("utf-8")
  • 數據抽取模塊編寫

通過對圖片和箴言查看元素可知相關代碼鑲嵌情況。

因此可以編寫數據抽取模塊

import redef get_data(html):img_url_regex = re.compile('<img src="(.*?)" alt="" />')cite_regex = re.compile('<div class="one-cita">(.*?)</div>', re.S)img_url = re.findall(img_url_regex, html)[0]cite = re.findall(cite_regex, html)[0].strip()return img_url, cite
  • 數據存儲模塊編寫
def save_data(img_url, cite, URL_NUM):with open("./{}.jpg".format(URL_NUM), "wb") as fp:fp.write(rq.get(img_url).content)with open("./cite{}.txt".format(URL_NUM), "w") as fp:fp.write(cite)return URL_NUM + 1

整合所有模塊輸出爬取結果

import re import requests as rqROOT_URL = "http://wufazhuce.com/one/" URL_NUM = 14def yield_url(ROOT_URL, URL_NUM):return ROOT_URL + str(URL_NUM)def get_html(url):return rq.get(url).content.decode("utf-8")def get_data(html):img_url_regex = re.compile('<img src="(.*?)" alt="" />')cite_regex = re.compile('<div class="one-cita">(.*?)</div>', re.S)img_url = re.findall(img_url_regex, html)[0]cite = re.findall(cite_regex, html)[0].strip()return img_url, cite def save_data(img_url, cite, URL_NUM):with open("./{}.jpg".format(URL_NUM), "wb") as fp:fp.write(rq.get(img_url).content)with open("./cite{}.txt".format(URL_NUM), "w") as fp:fp.write(cite)return URL_NUM + 1def main(ROOT_URL, URL_NUM, number):for _ in range(number):url = yield_url(ROOT_URL, URL_NUM)html = get_html(url) img_url, cite = get_data(html) URL_NUM = save_data(img_url, cite, URL_NUM)if __name__ == "__main__":try:main(ROOT_URL, URL_NUM, 20)except:pass

結果展示:

總結?

本文的目的只是為了讓初學者對寫爬蟲的大體流程有較為清晰的了解。天高任鳥飛,海闊憑魚躍!每個人心中的爬蟲框架(流程)各異,實現方法各異自由發揮空間極大,但有一點務必注意那就是遵守中華人民共和國的法律。

總結

以上是生活随笔為你收集整理的ctf up怎么写 write_??零基础写网络爬虫的思路??的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。