亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python爬蟲實例詳解

2020-02-15 21:55:35
字體:
來源:轉載
供稿:網友

本篇博文主要講解Python爬蟲實例,重點包括爬蟲技術架構,組成爬蟲的關鍵模塊:URL管理器、HTML下載器和HTML解析器。

爬蟲簡單架構

程序入口函數(爬蟲調度段)

#coding:utf8import time, datetimefrom maya_Spider import url_manager, html_downloader, html_parser, html_outputerclass Spider_Main(object): #初始化操作 def __init__(self):  #設置url管理器  self.urls = url_manager.UrlManager()  #設置HTML下載器  self.downloader = html_downloader.HtmlDownloader()  #設置HTML解析器  self.parser = html_parser.HtmlParser()  #設置HTML輸出器  self.outputer = html_outputer.HtmlOutputer() #爬蟲調度程序 def craw(self, root_url):  count = 1  self.urls.add_new_url(root_url)  while self.urls.has_new_url():   try:    new_url = self.urls.get_new_url()    print('craw %d : %s' % (count, new_url))    html_content = self.downloader.download(new_url)    new_urls, new_data = self.parser.parse(new_url, html_content)    self.urls.add_new_urls(new_urls)    self.outputer.collect_data(new_data)    if count == 10:     break    count = count + 1   except:    print('craw failed')  self.outputer.output_html()if __name__ == '__main__': #設置爬蟲入口 root_url = 'http://baike.baidu.com/view/21087.htm' #開始時間 print('開始計時..............') start_time = datetime.datetime.now() obj_spider = Spider_Main() obj_spider.craw(root_url) #結束時間 end_time = datetime.datetime.now() print('總用時:%ds'% (end_time - start_time).seconds)

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.add_new_url(url) def has_new_url(self):  return len(self.new_urls) != 0 def get_new_url(self):  new_url = self.new_urls.pop()  self.old_urls.add(new_url)  return new_url

網頁下載器

import urllibimport urllib.requestclass HtmlDownloader(object): def download(self, url):  if url is None:   return None  #偽裝成瀏覽器訪問,直接訪問的話csdn會拒絕  user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  headers = {'User-Agent':user_agent}  #構造請求  req = urllib.request.Request(url,headers=headers)  #訪問頁面  response = urllib.request.urlopen(req)  #python3中urllib.read返回的是bytes對象,不是string,得把它轉換成string對象,用bytes.decode方法  return response.read().decode()

網頁解析器

import reimport urllibfrom urllib.parse import urlparsefrom bs4 import BeautifulSoupclass HtmlParser(object): def _get_new_urls(self, page_url, soup):  new_urls = set()  #/view/123.htm  links = soup.find_all('a', href=re.compile(r'/item/.*?'))  for link in links:   new_url = link['href']   new_full_url = urllib.parse.urljoin(page_url, new_url)   new_urls.add(new_full_url)  return new_urls #獲取標題、摘要 def _get_new_data(self, page_url, soup):  #新建字典  res_data = {}  #url  res_data['url'] = page_url  #<dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1>獲得標題標簽  title_node = soup.find('dd', class_="lemmaWgt-lemmaTitle-title").find('h1')  print(str(title_node.get_text()))  res_data['title'] = str(title_node.get_text())  #<div class="lemma-summary" label-module="lemmaSummary">  summary_node = soup.find('div', class_="lemma-summary")  res_data['summary'] = summary_node.get_text()  return res_data def parse(self, page_url, html_content):  if page_url is None or html_content is None:   return None  soup = BeautifulSoup(html_content, '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            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
宅男66日本亚洲欧美视频| 亚洲欧美日韩在线高清直播| 国产日韩欧美在线观看| 久久久亚洲影院你懂的| 亚洲丝袜一区在线| 一本色道久久88精品综合| 一区二区三区黄色| 国产www精品| 国产欧美一区二区三区久久人妖| 美女撒尿一区二区三区| 在线播放日韩精品| 国产日韩精品电影| 欧美亚洲国产日本| 日韩亚洲欧美中文高清在线| 最近2019年手机中文字幕| 一区二区av在线| 国产精品最新在线观看| 久久99精品久久久久久琪琪| 久久久久久久久电影| 中文字幕日本精品| 国产精品视频白浆免费视频| 尤物yw午夜国产精品视频明星| 91在线观看免费高清| 欧美一级大片在线免费观看| 久久精品国产欧美亚洲人人爽| 亲子乱一区二区三区电影| 亚洲香蕉成人av网站在线观看| 国产aaa精品| 欧美成人亚洲成人| 最近2019中文字幕第三页视频| 久久精品国产96久久久香蕉| 久久久国产视频| 色偷偷91综合久久噜噜| 2019中文字幕在线免费观看| 中文字幕日韩欧美精品在线观看| 欧美精品videos性欧美| 亚洲欧美日韩中文视频| 日本国产精品视频| 一区国产精品视频| 欧美日韩亚洲一区二区三区| 庆余年2免费日韩剧观看大牛| 欧美一级免费视频| 亚洲免费福利视频| 日本久久久久久久久久久| 日本19禁啪啪免费观看www| 国产精品18久久久久久麻辣| 日韩精品视频免费专区在线播放| 亚洲精品99久久久久中文字幕| 精品国产乱码久久久久久婷婷| 国产精品天天狠天天看| 欧美成人中文字幕在线| 在线观看日韩av| 国内精久久久久久久久久人| 日本高清不卡在线| 成人免费大片黄在线播放| 国产成人精品午夜| 韩国视频理论视频久久| 欧美超级乱淫片喷水| 亚洲成人免费网站| 成人免费视频网址| 亚洲成人免费网站| 亚洲精品乱码久久久久久金桔影视| 黑人巨大精品欧美一区免费视频| 亚洲自拍偷拍在线| 精品女同一区二区三区在线播放| 欧美日韩中文字幕在线| 日韩欧美福利视频| 欧美裸身视频免费观看| 在线观看免费高清视频97| 欧美日韩在线第一页| 青青久久aⅴ北条麻妃| 日韩av成人在线观看| 成人激情视频在线| 欧美一级视频在线观看| 国产精品美女久久| 亚洲视频网站在线观看| 永久免费毛片在线播放不卡| 最近2019中文免费高清视频观看www99| 青草青草久热精品视频在线网站| 久久全国免费视频| 亚洲欧美在线磁力| 欧美中文字幕精品| 国产女精品视频网站免费| 91久久综合亚洲鲁鲁五月天| 欧美色欧美亚洲高清在线视频| 亚洲欧美中文字幕| 成人黄色片在线| 久久乐国产精品| 色偷偷亚洲男人天堂| 日韩欧美高清视频| 久久久久久亚洲精品中文字幕| 韩国精品美女www爽爽爽视频| 久久精品视频中文字幕| 91在线播放国产| 欧美精品在线观看| 俺去亚洲欧洲欧美日韩| 亚洲自拍高清视频网站| 96国产粉嫩美女| 国产va免费精品高清在线观看| 亚洲男人天堂九九视频| 色噜噜亚洲精品中文字幕| 欧美一级大片在线免费观看| 精品欧美aⅴ在线网站| 欧美一级淫片丝袜脚交| 国产精品成av人在线视午夜片| 国产亚洲aⅴaaaaaa毛片| 日韩成人在线电影网| 国产亚洲精品久久久久久777| 亚洲亚裔videos黑人hd| 日韩国产高清污视频在线观看| 亚洲人成人99网站| 中日韩美女免费视频网站在线观看| 丁香五六月婷婷久久激情| 欧美丝袜美女中出在线| 懂色av中文一区二区三区天美| 成人免费淫片aa视频免费| 青青在线视频一区二区三区| 久久视频在线免费观看| 久久噜噜噜精品国产亚洲综合| 亚洲欧美日韩精品久久亚洲区| 亚洲自拍高清视频网站| 高潮白浆女日韩av免费看| 91国在线精品国内播放| 国产福利精品在线| 欧美亚洲激情视频| 91影视免费在线观看| 91精品国产91久久久久久不卡| 欧美在线观看日本一区| 国产精品欧美日韩| 国产精品久久97| 亚洲欧美日韩另类| 国产手机视频精品| 日韩中文在线中文网在线观看| 91久久久久久久久久| 国产日韩中文在线| 国产精品一区久久| 在线视频日韩精品| 成人97在线观看视频| 国产精品久久久久久久7电影| 日韩av中文在线| 日韩网站在线观看| 奇米一区二区三区四区久久| 亚洲影院污污.| 日韩av有码在线| 亚洲人成网站999久久久综合| 青青草国产精品一区二区| 日韩大片在线观看视频| 亚洲国产成人av在线| 国产网站欧美日韩免费精品在线观看| 美日韩丰满少妇在线观看| 亚洲国产成人精品一区二区| 主播福利视频一区| 55夜色66夜色国产精品视频| 日韩精品久久久久久福利| 久久久噜噜噜久久中文字免| 久久久中精品2020中文| 精品久久久久久久久久久久久久| 国产精品视频不卡| 国产精品99久久久久久久久久久久| 国产成人精品在线| 日韩欧美一区二区三区| 亚洲xxxx视频| 91精品国产高清自在线| 欧美裸体xxxx极品少妇软件|