XPath與多線程爬蟲

#encoding=utf-8
    #在進行網頁抓取的時候,分析定位html節點是獲取抓取信息的關鍵,目前我用的是lxml模塊(用來分析XML文檔結構的,當然也能分析html結構), 利用其lxml.html的xpath對html進行分析,獲取抓取信息;
#神器XPath的介紹與配置
    #首先要說的是XPath數據類型。XPath可分爲四種數據類型:
    # 節點集(node-set) :節點集是通過路徑匹配返回的符合條件的一組節點的集合。其它類型的數據不能轉換爲節點集。
    # 布爾值(boolean) :由函數或布爾表達式返回的條件匹配值,與一般語言中的布爾值相同,有true和false兩個值。布爾值可以和數值類型、字符串類型相互轉換。
    # 字符串(string) :字符串即包含一系列字符的集合,XPath中提供了一系列的字符串函數。字符串可與數值類型、布爾值類型的數據相互轉換。
    # 數值(number) :在XPath中數值爲浮點數,可以是雙精度64位浮點數。另外包括一些數值的特殊描述,如非數值NaN(Not-a- Number)、正無窮大 infinity、負無窮大-infinity、正負0等等。number的整數值可以通過函數取得,另外,數值也可以和布爾類型、字符串類型相互轉換。
        #XPath是一種語言,可以在XML文檔中查找信息,支持HTML,通過元素和屬性進行導航,可以用來提取信息,比正則表達式簡單且強大
# 神器XPath的使用
# 神器XPath的特殊使用
# 神器XPath的特殊用法
# Python並行化介紹與演示
# 實戰--百度貼吧爬蟲
#
# import lxml
# from lxml import etree
# import requests
# from requests import get

from lxml import etree
#定義多行字符串
html = '''
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測試-常規用法</title>
</head>
<body>
<div id="content">
    <ul id="useful">
        <li>這是第一條信息</li>
        <li>這是第二條信息</li>
        <li>這是第三條信息</li>
    </ul>
    <ul id="useless">
        <li>不需要的信息1</li>
        <li>不需要的信息2</li>
        <li>不需要的信息3</li>
    </ul>
    <div id="url">
        <a href="http://www.jikexueyuan.com/">極客學院</a>
        <a href="http://www.jikexueyuan.com/course/?pageNum=1" title="極客學院課程庫">點我打開課程庫</a>
    </div>
</div>

</body>
</html>
'''

selector = etree.HTML(html)

# #提取文本
# content = selector.xpath('//ul[@id="useful"]/li/text()')
# # content = selector.xpath('//div[@id="content"]/ul[@id="useful"]/li/text()')
# # content = selector.xpath('//div/ul[@id="useful"]/li/text()')
# for each in content:
#     print each

# # #提取屬性
# # link = selector.xpath('//a/@href')
# # # link = selector.xpath('//div[@id="url"]/a/@href')
# # for each in link:
# #     print each
# #
# title = selector.xpath('//a/@title')
# print title[0]



發佈了22 篇原創文章 · 獲贊 1 · 訪問量 6806
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章