初学python爬虫

菜鸟初学python爬虫,爬一个没有反爬的炒鸡简单的网站。http://www.mzitu.com/zipai/

用到的模块

1
2
3
import requests
from bs4 import BeautifulSoup
import os

找到当前页面图片地址

首先打开网站,右键图片点击检查,发现图片地址在p标签下的img标签中储存。
右键图片点击检查
先用get方法获取页面内容,再用BeautifulSoup煲汤。

1
2
3
4
r = requests.get('http://www.mzitu.com/zipai/')
soup = BeautifulSoup(r.text,'lxml') #需要 pip install lxml
list1 = []
list1 = soup.select('p > img')

然后再用for循环提取出img的属性

1
2
3
4
list2 =[]
for i in list1:
list2.append(i.get('src'))
print(i.get('src'))

下载图片

1
2
3
4
5
6
7
8

os.mkdir('D:/妹子图')
os.chdir('D:/妹子图')
for i in list2:
img = requests.get(i)
filename = i.split('/')[-1]
with open(filename,'wb') as f:
f.write(img.content)

循环每个页面

很容易可以观察到,地址的格式是”http://www.mzitu.com/zipai/comment-page-"+ 页数+”/#comments”
因此写个for循环即可遍历地址

1
2
for i in range(1,365):
url ="http://www.mzitu.com/zipai/comment-page-"+ str(i)+"/#comments"

再把url传入上面的方法即可。

小问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import requests
from bs4 import BeautifulSoup
import os

os.mkdir('D:/妹子图')
os.chdir('D:/妹子图')
for i in range(1,365):
url ="http://www.mzitu.com/zipai/comment-page-"+ str(i)+"/#comments"
r = requests.get(url)
soup = BeautifulSoup(r.text,'lxml')
list1 = soup.select('p > img')
list2 =[]
for i in list1:
list2.append(i.get('src'))
print(i.get('src'))
for i in list2:
img = requests.get(i)
filename = i.split('/')[-1]
with open(filename,'wb') as f:
f.write(img.content)