Python 開發簡單爬蟲 (學習筆記)

wsAdmin發表於2019-08-05

Python開發簡單爬蟲(學習筆記)

1.管理待抓取的url集合與已抓取的url集合
2.作用:防止重複抓取與迴圈抓取url指向資源
3.實現方式:記憶體管理;關係型資料庫(mysql)管理;非關係型資料庫管理(Redis)
1.將網際網路上的URL對應的網頁下載至本地的工具
2.作用:通過url在網際網路上獲取指定的網頁,將其下載至本地並儲存成檔案,或者以字串的形式儲存在記憶體中
3.種類:
    ①urllib2(Python官方提供的基礎模組);
    ②requests(第三方外掛,提供更為強大的功能)
4. urllib2抓取網頁的三種方法
url = "https://www.baidu.com";
print "第一方法"
res_1 = urllib2.urlopen(url); #直接請求url
print res_1.getcode(); #列印請求結果狀態碼
print len(res_1.read()) #列印獲取的網頁長度

print "第二種方法"
request = urllib2.Request(url) #創造請求
request.add_header('user-agent',"Mozilla/5.0") #偽造瀏覽器請求頭並新增
res_2 = urllib2.urlopen(request) #發起請求
print res_2.getcode() #獲取請求結果狀態碼
print len(res_2.read()) #列印獲取的網頁長度

print "第三種方法"
cookie_content = cookielib.CookieJar() #建立cookie容器
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_content)) #以容器作為引數建立opener的引數
urllib2.install_opener(opener) #給urllib2安裝opener,這樣urllib2就擁有了處理Cookie的增強能力
res_3 = urllib2.urlopen(url)
print res_3.getcode() #獲取請求結果狀態碼
print res_3.read() #列印獲取的網頁內容
1.從網頁中提取有價值資料的工具
2.解析器種類:
    ①正規表示式;
    ②html.parser(Python自帶);
    ③BeautifulSoup(第三方外掛);
    ④lxml(第三方解析器)
1.安裝:pip install beautifulsoup4
2.例項:
#獲取要抓取的網頁內容
imooc = urllib2.Request("https://www.imooc.com/search/?words=python") #創造請求
imooc.add_header('user-agent',"Mozilla/5.0") #偽造瀏覽器請求頭並新增
res_4 = urllib2.urlopen(imooc) #發起請求
print res_4.getcode() #獲取請求結果狀態碼
string_4 = res_4.read() #列印獲取的網頁長度
#建立BeautifulSoup 物件,同時將網頁字串轉為DOM樹形式;引數1:獲取的網頁字串;引數2:指定解析器;引數3:指定編碼
soup = BeautifulSoup(string_4,'html.parser',from_encoding='utf-8');
# 獲取所有圖片地址;引數1:標籤名稱,引數2:標籤屬性
path = soup.find_all('img',{'class':"course-item-img"})
for link in path:
    #列印標籤名稱,標籤屬性值,標籤內容
    print link.name, link['src'], link.get_text();

相關文章