Python3-爬取妹子图
本帖最后由 好想吃掉你 于 2019-3-27 15:48 编辑这里是第一页的爬虫如果想爬第几页就换url如果想全部爬下来的话,for循环就ok
以下是代码:
from bs4 import BeautifulSoup
import requests
import os
headers = {
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
'Accept-Encoding': 'gzip',
"Referer": "https://www.mzitu.com/101553"
} #头部文件
path="jpg" #jpg为保存目录,可随意更改
os.chdir(path)
url = 'https://www.mzitu.com'
response1 = requests.get(url, headers=headers)
html_soup1 = BeautifulSoup(response1.text, 'lxml')
all_url=html_soup1.find("ul",{"id":"pins"}).find_all("a")
count=1
for href in all_url:
count=count+1
if count%2!=0:
href1=href['href']
#print(href1)
for href2 in href:
response2 = requests.get(href1, headers=headers)
html_Soup2 = BeautifulSoup(response2.text, 'lxml')
pic_address= html_Soup2.find("div",{"class":"main-image"}).find("img")['src']
#print(pic_address)
next_address=html_Soup2.find_all("span")
max_adress=next_address.get_text()
name = html_Soup2.find("div", {"class": "main-image"}).find("img")['alt']
os.mkdir(name)
os.chdir(name)
for iin range (1,int(max_adress)+1):
#print(i)
next_url = href1+'/'+str(i)
response3 = requests.get(next_url, headers=headers)
html_Soup3 = BeautifulSoup(response3.text, 'lxml')
pic_address2 = html_Soup3.find("div", {"class": "main-image"}).find("img")['src']
title = html_Soup3.find("h2")
name1 = title.get_text()
img = requests.get(pic_address2, headers=headers)
f = open(name1 + '.jpg', 'ab')
f.write(img.content)
f.close()
os.chdir("/Users/w2ng/untitled/venv/jpg")#获取自己的工作目录,将/Users/w2ng/untitled/venv 改为os.getcwd()的结果就ok
附上截图,运行了一下下
我好了 胸弟们 indian806 发表于 2019-8-1 09:50
非常感谢,那个问题按照您说的已经解决了现在问题是:
1.要么远程主机已关闭(估计是公司服务 ...
1,网站已经发觉你是爬虫了
2,提取规则错误或者网站更改了
3,没明白你的描述 indian806 发表于 2019-8-1 11:04
1.如果是提取规则错误应该如何解决,我目前用的是楼主的源码;
2."Referer": "https://www.****.com/101 ...
1、提取规则错误需要改源码
2、referer记录你从哪个url到达当前的url 阿伟死了 得需要装那个 环境软件吧 爬虫是Python的长项。 这爬的啥网站{:1_918:} 感谢楼主分享 看了下网站图片 只能说:万恶的 亮光马赛克啊{:1_935:} 成年男人的福利,谢谢分享。 这代码怎么用??? 一会试试再来评价