久久精品五月,日韩不卡视频在线观看,国产精品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综合
久久不卡国产精品一区二区| 一区二区精品伦理...| 久久天堂精品| 欧美日韩尤物久久| 久久久久国产精品一区二区| 免费看av不卡| 久久精品亚洲欧美日韩精品中文字幕| 日韩欧美另类一区二区| 在线看片福利| 91中文字幕精品永久在线| 国产伊人久久| 日韩欧美二区| 极品日韩av| 美女精品在线观看| 亚洲精品进入| 国产精品久久久久久久久久白浆 | 午夜久久一区| 久久成人亚洲| 日韩福利在线观看| 999国产精品| 欧美私人啪啪vps| 成人在线网站| 久久国产精品久久久久久电车| 99久久激情| 日韩精品永久网址| 99久久九九| 久久亚洲美女| 久热精品在线| 欧美一级二级视频| 丰满少妇一区| 婷婷久久一区| 日本不卡视频一二三区| 麻豆精品视频在线观看| 欧美天堂视频| 夜夜嗨一区二区三区| 日韩中文av| 国产aⅴ精品一区二区三区久久| 日韩精品水蜜桃| 视频一区日韩精品| 精品国产乱码久久久久久1区2匹| 久久久9色精品国产一区二区三区| 国产精品日本欧美一区二区三区| 免费精品视频最新在线| 国产精品一页| 欧美中文字幕一区二区| 日韩国产在线一| 国产一区二区视频在线看| 欧美a级一区| 日韩成人精品一区二区三区 | 视频一区中文| 日韩国产精品久久久| 久草免费在线视频| 在线精品福利| 久久久久免费| 国产亚洲精品v| 国产福利亚洲| 精品免费av在线| 亚洲v天堂v手机在线| 岛国av在线网站| 美国三级日本三级久久99| 国产一区二区三区国产精品| 性欧美69xoxoxoxo| 久久爱www.| 亚洲在线观看| 欧美日韩在线观看首页| 日本不卡一区二区| 神马午夜久久| 欧美日本不卡高清| 夜夜精品视频| 中文一区一区三区高中清不卡免费| 鲁大师影院一区二区三区| 久久中文精品| 亚洲资源在线| 国产二区精品| 荡女精品导航| 亚洲精品在线国产| 天堂av在线| 国产精品最新| 免费人成在线不卡| 日本久久成人网| 麻豆精品国产91久久久久久| 中文字幕一区二区精品区| 久久国产欧美| 国产成人精品亚洲线观看| 日韩动漫一区| 蜜臀91精品一区二区三区| 伊人网在线播放| 国产欧美三级| 亚州av一区| 日本欧美在线看| 国精品一区二区三区| 日本一二区不卡| 国产精品亚洲综合在线观看| 日韩精品一二三四| av一区二区高清| 亚洲伦乱视频| 国产一区二区三区日韩精品| 国产日韩欧美| 久热综合在线亚洲精品| 久久在线免费| 欧美www视频在线观看| 欧美视频精品全部免费观看| 亚洲欧美网站| 日韩视频不卡| 欧美精品激情| 99精品视频在线| 日本不良网站在线观看| 精品资源在线| 国产精品a久久久久| 欧美另类中文字幕 | 综合色就爱涩涩涩综合婷婷| 亚洲一区国产| 国产精品视区| 久久国产88| 国产模特精品视频久久久久| 欧美成人基地 | 久久99久久久精品欧美| 日本午夜精品一区二区三区电影| 亚洲综合小说| 97精品国产99久久久久久免费| 99成人在线| 久久精品亚洲欧美日韩精品中文字幕| 日韩在线欧美| 日韩中文在线播放| 久久一区二区三区电影| 99久久亚洲精品| 国产韩日影视精品| 视频在线观看一区| 日韩精品一页| 国产精品网站在线看| 国产亚洲一区| 国产精品chinese| 高清日韩欧美| 久久精品在线| 夜久久久久久| 亚洲精品国产精品粉嫩| 视频一区中文字幕精品| 久久国产精品色av免费看| 麻豆一区二区三| 欧美日韩免费观看视频| 成人羞羞视频播放网站| 欧美精品羞羞答答| 免费在线观看精品| 日本va欧美va精品发布| 国产精品亚洲欧美一级在线| 精品少妇av| 亚洲一级特黄| 久久亚洲图片| 欧美一区免费| 国产福利片在线观看| 日本在线高清| 亚洲香蕉网站| 日本一区二区三区视频在线看| 国产精品一在线观看| 日韩中文首页| 玖玖精品视频| 国产精品蜜月aⅴ在线| av最新在线| 欧美日韩三区| 18国产精品| 成人国产精品一区二区免费麻豆| 婷婷国产精品| 亚洲a级精品| 精品视频一区二区三区四区五区| 久久精品亚洲人成影院| 亚洲一区黄色| 国产精品久久久免费| 在线日韩欧美| 亚洲va久久久噜噜噜久久| 久久精品亚洲一区二区| 蜜臀91精品国产高清在线观看| 亚洲精品欧洲| 91一区二区三区四区| 美女久久一区| 久久亚洲精精品中文字幕| 激情五月综合| 国产精品日本一区二区三区在线 | 欧美国产极品| 午夜日本精品| 青青草91久久久久久久久| 鲁鲁在线中文| 亚洲三级精品| 亚洲天堂免费电影| 日韩欧美高清一区二区三区| 成人美女视频| 日韩高清欧美激情| 亚洲一级少妇| 日韩动漫一区| 欧美.日韩.国产.一区.二区| 国产精品资源| 亚洲在线成人| 黑人精品一区| 日韩黄色av| 欧美精品激情| 欧美激情综合| 视频在线观看国产精品| 中文字幕人成乱码在线观看 | 国产精品qvod| 免费观看在线色综合| 国产精选在线|