1. 程式人生 > >python學習之簡單python爬蟲

python學習之簡單python爬蟲

參考文章來源:

基本算是第一次使用python寫程式碼,所以直接參考了已有的部落格的編寫過程。

依然遇到了問題:

問題一:

urllib 和 urllib2的區別有哪些?

用urllib2獲取到網頁內容後,不能對內容進行read()操作。

但是使用urllib 就可以對該網頁內容進行read()

問題二:

print u'請輸入url:',

這一行報錯:

SyntaxError: Non-ASCII character '\xe8' in file /Users/xialei/PycharmProjects/spider/venv/code/__init__.py on line 28, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details  

解決方法:

在檔案頭部加入:

# -*- coding: utf-8 -*-

指定編碼格式

問題三:

print u'請輸入url:',

這個程式碼為什麼要再 字串前面加上 u 字母?

為什麼最後有 逗號?

實際不加u,效果是一樣的

實際不加逗號 ,效果也是一樣的

最終實際程式:

# -*- coding: utf-8 -*-
import urllib
import re

# page = urllib.urlopen('http://tieba.baidu.com/p/1753935195')
# htmlCode = page.read();
# #print htmlCode
#
# pageFile = open('pageCode.txt','w')
# pageFile.write(htmlCode)
# pageFile.close()


def get_html(url):
    page =  urllib.urlopen(url)
    html = page.read()
    return html

def get_image(html_code):
    reg = r'src="(.+?\.jpg)" width'
    reg_img = re.compile(reg)
    imgList = reg_img.findall(html_code)
    x = 0
    for img in imgList:
        print img
        urllib.urlretrieve(img, '%s.jpg' % x)
        x += 1

print '請輸入url: '
url = raw_input()
if url:
    pass
else:
    url = 'http://tieba.baidu.com/p/1753935195'

html_code = get_html(url)
get_image(html_code)

執行結果: