Python 爬虫零基础教程(6):Lofter 爬虫

输入 lofter 博客网址,下载博客图片

不是所有的lofter博客都好使,每个博客代码不同。主发照片的博客通常好使。


效果图:

Python 爬虫零基础教程(6):Lofter 爬虫_第1张图片
Python 爬虫零基础教程(6):Lofter 爬虫_第2张图片


代码:

# python2
#coding:utf-8
# Filename:lofter.py
# 输入 LOFTER 博客网址,下载博客图片
# 不是所有的 lofter 博客都好使,每个博客代码不同。主发照片的博客通常好使。


import requests
import re
from time import sleep

user_agent = ''
headers = {'User-Agent': user_agent}

def page_url(url, page):
    url_0 = url
    page = int(page) + 1
    page_url_list = []
    num = 1
    while (num < page):
        url = url_0 + '?page=' + str(num)
        page_url_list.append(url)
        num += 1
    return page_url_list

def pic_url(page_url_list):
    pic_url_list = []
    for url in page_url_list:
        data = requests.get(url, headers = headers).content
        urls = re.findall('

while / else 循环:
while 判断条件为 false 时 运行 else


正则 re.search

扫描整个字符串并返回第一个成功的匹配。匹配成功返回一个 Match 对象,否则返回None。

语法:

re.search(pattern, string, flags=0)

pattern:匹配的正则表达式
string:要匹配的字符串。
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

示例:

import re

str_list = ['111','222','333','444']
for str_i in str_list:
    str_0 = re.search('333',str_i)
    if str_0:
        print(str_0)
    else:
        print('no find')

# 输出:
no find
no find

no find


文件路径

文件路径就是文件在电脑中的位置。表示路径的方式有两种,相对路径和绝对路径。

相对路径:相对路径就是相对于当前文件的路径。

绝对路径:也叫完整路径,指从根目录开始,完整的描述文件位置的路径。例如,/etc/uucp/Devices 指根目录下的 etc 目录下的 uucp 目录下的 Devices 文件。在最前面输入正斜杠 / 来表示根目录,用正斜杠 / 来分隔路径中的各级目录。(目录就是文件夹)

示例:

绝对路径

download_file_name = str(num) + '.jpg'
f = open(download_file_name, 'wb')

表示在当前目录创建图片文件,即代码的 .py 文件所在的文件夹,图片依次命名为 1.jpg2.jpg ...

如果改成绝对路径

download_address = '/Users/v1coder/'+str(num) + '.jpg'
f = open(download_file_name, 'wb')

则表示在根目录下的 Users 目录下的 v1coder 目录下,创建图片文件,图片依次命名为 1.jpg2.jpg ...


读取键盘输入

raw_inputinput

都是读取键盘的输入,产生一个返回值。

区别
raw_input() 将所有输入作为字符串看待,返回字符串类型。
input() 会假设你的输入是一个有效的Python表达式。输入数字类型( int, float ),返回数字类型;输入表达式,返回计算结果;如果想输入字符串,必须加引号。

raw_input() 和 input() 括号里通常包含一个字符串,说明要输入的内容,例如:

a_input = raw_input('请输入一个字符串:')

屏幕会先输出 请输入一个字符串:,我们在后面输入,输入的内容就会赋值给 a_input

示例:

input_1 = input('input_1:')
input_2 = input('input_2:')
input_3 = input('input_3:')

input_4 = raw_input('input_4:')

print('-----------')
print(input_1)
print(input_2)
print(input_3)
print(input_4)
print('-----------')


# 输出:
# 冒号后面都是我输入的内容
input_1:123
input_2:123+456
input_3:'a str'
input_4:222+333
-----------
123
579
a str
222+333
-----------


函数的参数

定义函数时如果有参数,那么在调用此函数时就要提供参数

def test(param_1,param_2):
    print(param_1)
    print(param_2)
    print('a test')

test(1,2)

# 输出:
1
2
a test

如果只传入一个参数,或者没传入参数,就会报错。



提供两个博客地址测试代码:

http://lurenjiajiepai.lofter.com/ 街拍

http://inpetphoto.lofter.com/ 萌宠



教程目录:
0.《简介及准备》
1.《爬单个图片》
2.《下载一组网页上的图片》
3.《输出一个网页上的文字》
4.《获取电影天堂最新电影名称》
5.《糗事百科爬虫》
6.《Lofter 爬虫》

2019-01-02

你可能感兴趣的:(Python 爬虫零基础教程(6):Lofter 爬虫)