输入 lofter 博客网址,下载博客图片
不是所有的lofter博客都好使,每个博客代码不同。主发照片的博客通常好使。
效果图:
代码:
# 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.jpg
、 2.jpg
...
如果改成绝对路径
download_address = '/Users/v1coder/'+str(num) + '.jpg'
f = open(download_file_name, 'wb')
则表示在根目录下的 Users
目录下的 v1coder
目录下,创建图片文件,图片依次命名为 1.jpg
、 2.jpg
...
读取键盘输入
raw_input
和 input
都是读取键盘的输入,产生一个返回值。
区别
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