久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

python網絡爬蟲步驟是什么

python網絡爬蟲步驟:首先準備所需庫,編寫爬蟲調度程序;然后編寫url管理器,并編寫網頁下載器;接著編寫網頁解析器;最后編寫網頁輸出器即可。

python網絡爬蟲步驟是什么

本教程操作環境:windows7系統、python3.9版,DELL G3電腦。

python網絡爬蟲步驟

(1)準備所需庫

我們需要準備一款名為BeautifulSoup(網頁解析)的開源庫,用于對下載的網頁進行解析,我們是用的是PyCharm編譯環境所以可以直接下載該開源庫。

步驟如下:

選擇File->Settings

python網絡爬蟲步驟是什么

打開Project:PythonProject下的Project interpreter

python網絡爬蟲步驟是什么

點擊加號添加新的庫

python網絡爬蟲步驟是什么

輸入bs4選擇bs4點擊Install Packge進行下載

python網絡爬蟲步驟是什么

(2)編寫爬蟲調度程序

這里的bike_spider是項目名稱引入的四個類分別對應下面的四段代碼url管理器,url下載器,url解析器,url輸出器。

# 爬蟲調度程序 from bike_spider import url_manager, html_downloader, html_parser, html_outputer   # 爬蟲初始化 class SpiderMain(object):     def __init__(self):         self.urls = url_manager.UrlManager()         self.downloader = html_downloader.HtmlDownloader()         self.parser = html_parser.HtmlParser()         self.outputer = html_outputer.HtmlOutputer()      def craw(self, my_root_url):         count = 1         self.urls.add_new_url(my_root_url)         while self.urls.has_new_url():             try:                 new_url = self.urls.get_new_url()                 print("craw %d : %s" % (count, new_url))                 # 下載網頁                 html_cont = self.downloader.download(new_url)                 # 解析網頁                 new_urls, new_data = self.parser.parse(new_url, html_cont)                 self.urls.add_new_urls(new_urls)                 # 網頁輸出器收集數據                 self.outputer.collect_data(new_data)                 if count == 10:                     break                 count += 1             except:                 print("craw failed")          self.outputer.output_html()   if __name__ == "__main__":     root_url = "http://baike.baidu.com/item/Python/407313"     obj_spider = SpiderMain()     obj_spider.craw(root_url)

(3)編寫url管理器

我們把已經爬取過的url和未爬取的url分開存放以便我們不會重復爬取某些已經爬取過的網頁。

# url管理器 class UrlManager(object):     def __init__(self):         self.new_urls = set()         self.old_urls = set()      def add_new_url(self, url):         if url is None:             return         if url not in self.new_urls and url not in self.old_urls:             self.new_urls.add(url)      def add_new_urls(self, urls):         if urls is None or len(urls) == 0:             return         for url in urls:             self.new_urls.add(url)      def get_new_url(self):         # pop方法會幫我們獲取一個url并且移除它         new_url = self.new_urls.pop()         self.old_urls.add(new_url)         return new_url      def has_new_url(self):         return len(self.new_urls) != 0

(4)編寫網頁下載器

通過網絡請求來下載頁面

# 網頁下載器 import urllib.request   class HtmlDownloader(object):      def download(self, url):         if url is None:             return None         response = urllib.request.urlopen(url)         # code不為200則請求失敗         if response.getcode() != 200:             return None         return response.read()

(5)編寫網頁解析器

對網頁進行解析時我們需要知道我們要查詢的內容都有哪些特征,我們可以打開一個網頁點擊右鍵審查元素來了解我們所查內容的共同之處。

# 網頁解析器 import re from bs4 import BeautifulSoup from urllib.parse import urljoin   class HtmlParser(object):      def parse(self, page_url, html_cont):         if page_url is None or html_cont is None:             return         soup = BeautifulSoup(html_cont, "html.parser", from_encoding="utf-8")         new_urls = self._get_new_urls(page_url, soup)         new_data = self._get_new_data(page_url, soup)         return new_urls, new_data      def _get_new_data(self, page_url, soup):         res_data = {"url": page_url}         # 獲取標題         title_node = soup.find("dd", class_="lemmaWgt-lemmaTitle-title").find("h1")         res_data["title"] = title_node.get_text()         summary_node = soup.find("p", class_="lemma-summary")         res_data["summary"] = summary_node.get_text()         return res_data      def _get_new_urls(self, page_url, soup):         new_urls = set()         # 查找出所有符合下列條件的url         links = soup.find_all("a", href=re.compile(r"/item/"))         for link in links:             new_url = link['href']             # 獲取到的url不完整,學要拼接             new_full_url = urljoin(page_url, new_url)             new_urls.add(new_full_url)         return new_urls

(6)編寫網頁輸出器

輸出的格式有很多種,我們選擇以html的形式輸出,這樣我們可以的到一個html頁面。

# 網頁輸出器 class HtmlOutputer(object):      def __init__(self):         self.datas = []      def collect_data(self, data):         if data is None:             return         self.datas.append(data)      # 我們以html表格形式進行輸出     def output_html(self):         fout = open("output.html", "w", encoding='utf-8')         fout.write("<html>")         fout.write("<meta charset='utf-8'>")         fout.write("<body>")         # 以表格輸出         fout.write("<table>")         for data in self.datas:             # 一行             fout.write("<tr>")             # 每個單元行的內容             fout.write("<td>%s</td>" % data["url"])             fout.write("<td>%s</td>" % data["title"])             fout.write("<td>%s</td>" % data["summary"])             fout.write("</tr>")         fout.write("</table>")         fout.write("</body>")         fout.write("</html>")         # 輸出完畢后一定要關閉輸出器         fout.close()

相關免費學習推薦:python視頻教程

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
欧美日韩精品一本二本三本| 亚洲一区导航| 91精品1区| 亚洲午夜视频| 国产精品成人一区二区不卡| 国产精品久久久网站| 国产三级精品三级在线观看国产| 亚洲视频国产精品| 欧美亚洲自偷自偷| 欧美韩一区二区| 国内精品美女在线观看| 91麻豆国产自产在线观看亚洲| 92国产精品| 久久久水蜜桃av免费网站| 国产精品99免费看| 玖玖精品视频| 蜜臀精品久久久久久蜜臀| 亚洲ab电影| 国产精品久久乐| 精品久久久中文字幕| 在线手机中文字幕| 欧美a级一区| 中文精品电影| 国产精品三级| 97在线精品| 国产亚洲亚洲| 国产日韩一区| 亚洲黄色中文字幕| 久久国产福利| 国产欧美视频在线| 亚洲播播91| 深夜福利亚洲| 日韩1区2区| av亚洲在线观看| 中文字幕免费一区二区| 国产精品黄色片| 欧美少妇精品| 国产亚洲午夜| 美腿丝袜在线亚洲一区| 精品三级久久| 日韩欧美在线精品| 日韩中文欧美| 亚洲欧洲国产精品一区| 精品久久精品| 国产农村妇女精品一二区| 91精品丝袜国产高跟在线| 98精品视频| 亚洲精品动态| 久久精品动漫| 综合日韩在线| 成人亚洲一区| 一二三区精品| 四虎国产精品免费观看| 亚洲一级大片| 在线看片国产福利你懂的| 美女久久一区| 成午夜精品一区二区三区软件| 久久国产精品亚洲77777| 麻豆成人av在线| 亚洲欧美久久| 午夜在线播放视频欧美| 久久精品国产久精国产爱| 日韩在线一二三区| 国产一区二区三区国产精品| 黑丝美女一区二区| 欧美另类中文字幕 | 亚洲精品综合| 高清精品久久| 亚洲精品中文字幕99999| 高清av不卡| 国产精品宾馆| 免费看欧美美女黄的网站| 亚洲天堂av影院| 国产精品一区二区精品视频观看| 精品一区在线| www.com.cn成人| 日韩精品免费视频人成| 亚洲午夜电影| 国产精品久久久久久久久妇女| 日韩毛片网站| 国产视频一区免费看| 亚洲三级网址| 国产精品嫩草99av在线| 久久精品国内一区二区三区水蜜桃| 国产精品一区亚洲| 亚洲一级淫片| 免费日韩av| 一区二区小说| 色黄视频在线观看| 久久精品国产99国产| 欧美亚洲一区二区三区| 午夜在线精品偷拍| 蜜桃成人av| 欧美sss在线视频| 久久久水蜜桃av免费网站| 韩国女主播一区二区三区| 国产精品videossex久久发布| 日韩综合小视频| 久热re这里精品视频在线6| 蜜臀av免费一区二区三区| 国产亚洲一区二区手机在线观看 | 日本免费一区二区视频| 亚洲欧美久久| 国产精品91一区二区三区| 中文另类视频| 91亚洲成人| 久久久久久色| 日韩欧美中文字幕一区二区三区| 亚洲综合不卡| 国产高清一区二区| 亚洲婷婷在线| 久久蜜桃av| 欧美精品一区二区久久| 亚洲91久久| 99精品视频在线观看免费播放| 欧美三区四区| 999国产精品| 尤物tv在线精品| 久久国产小视频| 久久人人精品| 欧美国产91| 国产亚洲激情| 亚洲人妖在线| 91精品在线免费视频| 国产色噜噜噜91在线精品| 国产欧美成人| 精品一区91| 国产高清不卡| 91成人超碰| 久久亚洲风情| 日韩福利在线观看| 国产精品国码视频| 成人在线黄色| 黄毛片在线观看| 成人看片网站| 亚洲精品一二三区区别| 免费看日韩精品| 日韩精品一区二区三区av| 国产欧美日韩在线观看视频| 乱一区二区av| 久久精品免费一区二区三区| 9国产精品视频| 日韩精品亚洲一区二区三区免费| 国产日韩欧美在线播放不卡| 久久亚洲人体| 激情欧美亚洲| 亚洲精品日本| 国产精品xxx在线观看| 久久亚洲精品中文字幕| 日韩精品欧美激情一区二区| 99re国产精品| 91精品视频一区二区| 国产一区二区三区久久| 一区二区小说| 日本午夜免费一区二区| 精品久久视频| 亚洲精品国产偷自在线观看| 日本亚洲视频| 国内精品麻豆美女在线播放视频| 91精品国产乱码久久久久久久| 婷婷激情综合| 日本h片久久| 中文字幕在线视频久| 亚洲欧美日韩精品一区二区| 欧美一级网站| 国产精品xx| 日韩精品一二三区| 国产精品啊v在线| 国产精品av一区二区| 69堂精品视频在线播放| 新版的欧美在线视频| 日韩在线播放一区二区| 久久精品国产99国产精品| japanese国产精品| 国产精品一区高清| 久久国产亚洲| 国产日韩欧美中文在线| 1024精品一区二区三区| 亚洲欧美网站在线观看| 成人一区不卡| 蜜臀久久99精品久久久画质超高清| 精品视频一区二区三区在线观看| 黄色亚洲精品| 美女国产精品久久久| 亚洲免费高清| 久久久精品国产**网站| 六月丁香综合| 国产精品黑丝在线播放| 亚洲久久视频| 中国字幕a在线看韩国电影| 亚洲三级网址| 91精品啪在线观看国产18| 日韩动漫一区| 久久天堂成人| 免费在线成人| 亚洲欧洲美洲国产香蕉| 久久中文字幕av一区二区不卡| 国产欧美一区二区三区国产幕精品 | 日韩一区二区中文| 青青国产91久久久久久|