————————————————xpath初識————————————————
#-*_coding:utf-8-*-
from lxml import etree
# //定位根節點
# /往下層尋找
# /text() 提取文字內容
# /@***x 提取屬性內容
html = '''
極客學院
點我開啟課程庫
'''selector =etree.html(html)
#提取文字
content = selector.xpath('//ul[@id="useful"]/li/text()')
for each in content:
print each
#提取屬性
link = selector.xpath('//a/@href')
for each in link:
print each
title = selector.xpath('//a/@title')
print title[0]
html1 = '''
需要的內容1
需要的內容2
需要的內容3
'''html2 = '''
我左青龍,
右白虎,
老牛在當中,
龍頭在胸口。
'''selector = etree.html(html1)
content = selector.xpath('//div[starts-with(@id,"test")]/text()')
for each in content:
print each
selector = etree.html(html2)
content_1 = selector.xpath('//div[@id="test3"]/text()')
for each in content_1:
print each
data = selector.xpath('//div[@id="test3"]')[0]
info = data.xpath('string(.)')
content_2 = info.replace('\n','').replace(' ','')
print content_2
————————————————多執行緒爬蟲例項————————————————
多執行緒簡單例項 beginthreadx實現
使用 beginthreadex 函式,需使用標頭檔案,且進行編譯環境的設定 詳見上篇文章 執行緒的建立和終止 c include include include using namespace std static unsigned stdcall thread1 void param stati...
springboot 中多執行緒 執行緒池如何實現
1.概念理解 多執行緒和非同步呼叫之前一直不理解有什麼區別,發現,這兩個是一件事情的不同角度,多執行緒是方法,非同步是目的 在springboot 可以通過註解 async 搞定。執行緒池 執行緒池引入的目的是為了解決 多次使用執行緒意味著,我們需要多次建立並銷毀執行緒。而建立並銷毀執行緒的過程勢必...
hpe實訓課 多執行緒3
使用繼承的方式來實現 class window extends thread else public class testwindow 使用實現的方式來實現 class window1 implements runnable catch interruptedexception e system.o...