Python 爬蟲工具
阿新 • • 發佈:2022-02-04
-
requests
$ pip install requests import requests kw = {'wd':'長城'} headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} formdata = { "type":"AUTO", "i":"i love python", "doctype":"json", "xmlVersion":"1.8", "keyfrom":"fanyi.web", "ue":"UTF-8", "action":"FY_BY_ENTER", "typoResult":"true" } url = "http://www.baidu.com/s?" # params 接收一個字典或者字串的查詢引數,字典型別自動轉換為url編碼,不需要urlencode() resp = requests.get(url, params = kw, headers = headers) resp = requests.post(url, data = fordata) # 編碼方式 resp.encoding = 'utf-8' # 檢視響應內容,response.text 返回的是Unicode格式的資料 print response.text # 檢視響應內容,response.content返回的位元組流資料 print respones.content
-
re 正則表示式
import re # re.compile 預編譯正則表示式 # .*? 匹配任意長度字串 (?P<name>.*?) name為變數名,用於提取匹配內容 # re.S 匹配包括換行符在內的任意字元 obj = re.compile(r'<li>.*?<span class="title">(?P<name>.*?)</span>',re.S) # obj.search 搜尋符合正則規則的字串 group("pic_url")返回一個包含"pic_url"的元組 result = obj.search(resp.text).group("pic_url") #字串中找到正則表示式所匹配的所有子串,並把它們作為一個迭代器返回 re.finditer(pattern, string, flags=0)
-
xpath 查詢HTML標籤
$ pip3 install lxml from lxml import etree # resp.text 網頁文字 et = etree.HTML(resp.text) # 查詢<ul>標籤 含有class='pic' 的文字內容 result = et.xpath("//ul[@class='pic']/text()") # 查詢<a>標籤 包含的連結 result = et.xpath("//a/@href")
-
執行緒池
from concurrent.futures import ThreadPoolExecutor # 最多 10 執行緒 with ThreadPoolExecutor(10) as t: t.submit(func,arge)