Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Multithread-Crawler-Übungen_Beispiele für das Crawlen peinlicher Dinge aus Encyclopedia_python

Python-Multithread-Crawler-Übungen_Beispiele für das Crawlen peinlicher Dinge aus Encyclopedia_python

韦小宝
韦小宝Original
2017-12-16 11:16:591899Durchsuche

Der Herausgeber unten wird mit Ihnen einen Artikel über PythonMulti-ThreadingCrawler-Praxis_ein Beispiel für das Crawlen peinlicher Dinge aus der Enzyklopädie teilen. Er hat einen sehr guten Referenzwert und ich hoffe Es wird für alle nützlich sein. Freunde, die sich für Python interessieren, folgen Sie bitte dem Editor, um einen Blick darauf zu werfen

Multithread-Crawler: Das heißt, bestimmte Programmsegmente im Programm werden parallel ausgeführt,

Multi richtig einrichten -Threading, Sie können den Crawler effizienter machen

Beschwerde-Enzyklopädie: Gewöhnlicher Crawler und Multi-Thread-Crawler

Die Analyse des URL-Links zeigt:

https: //www.qiushibaike.com/8hr/page/page/

Multithread-Crawler ähneln dem Multithreading von JAVA, geben Sie einfach den Code ein


'''
#此处代码为普通爬虫
import urllib.request
import urllib.error
import re
headers = ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
for i in range(1,2):
 url = "https://www.qiushibaike.com/8hr/page/"+str(i)+"/"
 pagedata = urllib.request.urlopen(url).read().decode("utf-8","ignore")
 pattern = &#39;<p class="content">.*?<span>(.*?)</span>(.*?)</p>&#39;
 datalist = re.compile(pattern,re.S).findall(pagedata)
 for j in range(0,len(datalist)):
  print("第"+str(i)+"页第"+str(j)+"个段子内容是:")
  print(datalist[j])
&#39;&#39;&#39;
&#39;&#39;&#39;
#此处为多线程介绍代码
import threading #导入多线程包
class A(threading.Thread): #创建一个多线程A
 def init(self):  #必须包含的两个方法之一:初始化线程
  threading.Thread.init(self)
 def run(self):   #必须包含的两个方法之一:线程运行方法
  for i in range(0,11):
   print("我是线程A")
class B(threading.Thread): #创建一个多线程A
 def init(self):  #必须包含的两个方法之一:初始化线程
  threading.Thread.init(self)
 def run(self):   #必须包含的两个方法之一:线程运行方法
  for i in range(0,11):
   print("我是线程B")
t1 = A() #线程实例化
t1.start() #线程运行
t2 = B()
t2.start()
&#39;&#39;&#39;

#此处为修改后的多线程爬虫
#使用多线程进行奇偶页的爬取
import urllib.request
import urllib.error
import re
import threading
headers = ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
class one(threading.Thread): #爬取奇数页内容
 def init(self):
  threading.Thread.init(self)
 def run(self):
  for i in range(1,12,2):
   url = "https://www.qiushibaike.com/8hr/page/"+str(i)+"/"
   pagedata = urllib.request.urlopen(url).read().decode("utf-8","ignore")
   pattern = &#39;<p class="content">.*?<span>(.*?)</span>(.*?)</p>&#39;
   datalist = re.compile(pattern,re.S).findall(pagedata)
   for j in range(0,len(datalist)):
    print("第"+str(i)+"页第"+str(j)+"段子内容为:")
    print(datalist[j])

class two(threading.Thread): #爬取奇数页内容
 def init(self):
  threading.Thread.init(self)
 def run(self):
  for i in range(2,12,2):
   url = "https://www.qiushibaike.com/8hr/page/"+str(i)+"/"
   pagedata = urllib.request.urlopen(url).read().decode("utf-8","ignore")
   pattern = &#39;<p class="content">.*?<span>(.*?)</span>(.*?)</p>&#39;
   datalist = re.compile(pattern,re.S).findall(pagedata)
   for j in range(0,len(datalist)):
    print("第"+str(i)+"页第"+str(j)+"段子内容为:")
    print(datalist[j])
t1 = one()
t2 = two()
t1.start()
t2.start()


Der obige Artikel über Python-Multithread-Crawler-Praxis_Das Crawlen peinlicher Enzyklopädiewitze ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, es kann Ihnen eine Referenz geben, und ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.

Verwandte Empfehlungen:

Beispiele für gängige Zuordnungssortierungsmethoden in Python-Datenstrukturen und -Algorithmen [Bucket-Sortierung und Radix Sortieren】_python

So legen Sie die Schriftart und das Format von Excel-Zellen mithilfe von xlwt in Python fest

Ein Beispiel für die Implementierung der Baidu-Spracherkennungsfunktion in Python-Sprache

Das obige ist der detaillierte Inhalt vonPython-Multithread-Crawler-Übungen_Beispiele für das Crawlen peinlicher Dinge aus Encyclopedia_python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn