MONGO_DB="uumtu"
MONGO_TABLE="uumtu"
KEYWORD="mxmn"导入请求
从requests.exceptions 导入RequestException
从pyquery 导入PyQuery 作为pq
进口重新
从配置导入*
导入pymongo
从hashlib 导入md5
导入操作系统
从多处理导入池
客户端=pymongo.MongoClient(MONGO_URL, connect=False)
数据库=客户端[MONGO_DB]
baseurl="https://www.uumnt.cc"
def get_page_index(偏移量,关键字):
"""
该函数返回指定主题和页码的html内容
:param offset: 本主题中的哪个页面
:param keywords: 哪个主题
:返回:
"""
如果偏移!=1:
url="https://www.uumnt.cc/%s/%s"%(str(关键字),"list_%s.html"%str(偏移量))
否则:
url="https://www.uumnt.cc/%s"%(str(关键字),)
打印(网址)
尝试:
响应=requests.get(url)
如果响应.status_code==200:
返回响应.文本
返回无
除了RequestException:
print("请求页面时出错")
def parse_page_index(html):
"""
:param html: 传入的html是一个包含多组图片的入口页面。
:return: 返回url 生成器
#contbody div:nth-child(7) div h1
"""
#尝试:
文档=pq(html)
labelAs=doc("#mainbodypul .listmainrows")
#print(类型(labelAs.find("a")))
对于labelAs.find("a"): 中的aa
a1=pq(aa)
产生baseurl + a1.attr.href
def save_pic(内容):
file_path="{0}/{1}.{2}".format(os.getcwd()+"/minxin", md5(content).hexdigest(), "jpg")
打印(文件路径)
如果不是os.path.exists(file_path):
打开(文件路径,"wb")作为f:
f.write(内容)
f.close()
def download_image(url):
打印(网址)
尝试:
响应=requests.get(url)
如果响应.status_code==200:
html=pq(响应.文本)
src=html("div.center a img").attr.src
打印(源代码)
print("正在下载图片",url)
"""
https://newimg.uumnt.cc:8092/Pics/2017/1112/02/02.jpg
https://newimg.uumnt.cc:8092/Pics/2017/1120/09/01.jpg
"""
标题={
"引荐": "https://www.uumtu.com/siwa/23573_3.html",
"user-agent": "Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/68.0.3440.106 Safari/537.36"
}
image_page=requests.get(src,headers=headers)#打开真实图片
打印(图像_页.标题)
如果image_page.status_code==200:
保存图片(图像页面.内容)
返回无
除了RequestException:
print("请求页面时出错")
def get_page_detail(url):
尝试:
响应=requests.get(url)
如果响应.status_code==200:
doc=pq(响应.文本)
h1_text=(doc("div.center h1.center").text())
打印(h1_文本)
titlePatten=re.compile("(.*?)(.*?/(d+))", re.S)
mymatch=re.search(titlePatten, h1_text)
#print(标题1.组(1),标题1.组(2))
标题=mymatch.group(1)
计数=int(mymatch.group(2))
图片网址=[]
对于范围内的i(1,count):
经过
image_urls.append(url[:-5] + "_" + str(i) + ".html")
返回{
"标题":标题,
‘计数’:计数,
"网址":url,
"图像":image_urls
}
返回无
除了RequestException:
print("请求页面时出错")
def save_to_mongo(结果):
如果db[MONGO_TABLE].insert(结果):
print("成功保存到Mongo", result)
返回真
返回错误
def main(偏移):
响应=get_page_index(偏移量,KEYWORD)
对于parse_page_index(response):
mydic=get_page_detail(a)
如果mydic:
save_to_mongo(mydic)
lenth=len(mydic["图像"])
对于范围(长度): 中的索引
download_image(mydic["图像"][索引])
如果__name__=="__main__":
池=池()
#groups=([x * 20 for x in range(GROUP_START, GROUP_END + 1)])
#pool.map(主要,组)
groups=([x+1 for x in range(82)])
打印(组)
pool.map(主要,组)
关于本次实战教程:使用requests和pyquery技术抓取网络美女图片和的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。
【实战教程:使用requests和pyquery技术抓取网络美女图片】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
这听起来很有趣!想学习如何用代码下载图片
有19位网友表示赞同!
我还从来没用 requests 和 pyquery,这篇文章能让我入门吗?
有9位网友表示赞同!
做网站的爬虫很实用诶,期待看到操作步骤
有7位网友表示赞同!
美女图片?我猜标题的意思是网站上的人像照片吧?
有17位网友表示赞同!
需要什么基础知识才能看懂文章呢?
有19位网友表示赞同!
学习爬虫技术可以实现很多想法啊,比如收集资料什么的
有15位网友表示赞同!
这个文章会介绍哪些美女图片网站嘛?
有18位网友表示赞同!
我想学怎么用 Python 做一些实际应用,这篇文章挺适合的
有17位网友表示赞同!
我之前也想过尝试爬取图片,但不知道从哪里开始学习
有16位网友表示赞同!
看标题就感觉很专业的样子,希望步骤简单易懂哦!
有13位网友表示赞同!
爬虫技术真是太牛了!能爬取很多有用的信息
有16位网友表示赞同!
如果文章写得好,我很有可能跟着实践一遍
有17位网友表示赞同!
这个话题挺新奇的,我会关注一下这篇文章
有18位网友表示赞同!
学习一下爬虫技术,感觉以后可以做很多有趣的事情
有6位网友表示赞同!
希望文章能提供代码示例,方便理解和上手
有18位网友表示赞同!
我想了解下爬虫的优缺点,以及需要注意的事项
有9位网友表示赞同!
实战经验分享总是很宝贵,期待作者分享操作步骤
有11位网友表示赞同!
学习一下爬虫技术,可以在项目制作中派上用场
有11位网友表示赞同!
文章标题很有吸引力,看来可以满足我的好奇心了
有10位网友表示赞同!