各位老铁们好,相信很多人对外国女性网站源码分享都不是特别的了解,因此呢,今天就来为大家分享下关于外国女性网站源码分享以及外国个人网站的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
展开
爬虫的基本流程:
模拟浏览器向目标url发送请求,并获取响应
对响应中有用的内容进行提取
如果提取url,则继续发送请求获取响应
如果提取数据,则将数据进行保存
学爬虫,重点是思路,在这里提前祝:大家学有所成!
目标网站:妹子图网
环境:Python3.x
相关第三方模块:requests、beautifulsoup4
温馨小提示:各位在测试时只需要将代码里的变量path指定为你当前系统要保存的路径,代码中url部分的xxxx换成mzitu,然后打开终端,使用pythonxxx.py或IDE运行即可。
完整源码如下:
39;https://www.xxxx.com&http请求头
Hostreferer={
&39;:&39;,
&39;:&39;
}
39;User-Agent&39;Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)&39;Referer&39;https://www.xxxx.com/&对mzitu主页all_url发起请求,将返回的HTML数据保存,便于解析
start_html=requests.get(all_url,headers=Hostreferer)
path=&39;
39;E:/mzitu/&获取最大页数
soup=BeautifulSoup(start_html.text,&34;)
page=soup.find_all(&39;,class_=&39;)
max_page=page[-2].text
39;http://www.xxxx.com/page/&主页默认最新图片
39;https://www.xxxx.com/mm/page/&也可以指定《qingchunMM系列》
forninrange(1,int(max_page)+1):
分别对当前类每一页第一层url发起请求
start_html=requests.get(ul,headers=Hostreferer)
34;html.parser&39;div&39;postlist&39;a&39;_blank&遍历所有MM的标题
forainall_a:
39;&34;准备扒取:&windows不能创建带?的目录,添加判断逻辑
if(os.path.exists(path+title.strip().replace(&39;,&39;))):
39;目录已存在&39;?&39;&切换到上一步创建的目录
os.chdir(path+title.strip().replace(&39;,&39;))
39;href&34;html.parser&获取第二层最大页数
pic_max=mess.find_all(&39;)
pic_max=pic_max[9].text
if(flag==1andlen(os.listdir(path+title.strip().replace(&39;,&39;)))>=int(pic_max)):
print(&39;)
continue
拼接每张图片的url
pic=href+&39;+str(num)
34;html.parser&39;img&39;src&39;src&提取图片名字
file_name=pic_url[&39;].split(r&39;)[-1]
39;wb&39;完成&39;第&39;页完成&coding=utf-8
importrequests
url=&39;
39;User-Agent&39;Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/50.0.2661.102UBrowser/6.1.2107.204Safari/537.36&用get方法打开url并发送headers
html=requests.get(url,headers=header)
34;34;).find(&34;).appendTo(&index_banner&34;34;).css(&34;,90);
$(&index_banner_load&coding=utf-8
importrequests
frombs4importBeautifulSoup
url=&39;
header={
&39;:&39;}
html=requests.get(url,headers=header)
39;html.parser&实际上是第一个class=&39;的div里的所有a标签是我们要找的信息
all_a=soup.find(&39;,class_=&39;).find_all(&39;,target=&39;)
forainall_a:
title=a.get_text()39;bs4.BeautifulSoup&39;bs4.element.Tag&39;bs4.element.ResultSet&39;bs4.element.ResultSet&coding=utf-8
importrequests
frombs4importBeautifulSoup
url=&39;
header={
&39;:&39;}
html=requests.get(url,headers=header)
soup=BeautifulSoup(html.text,&39;)
39;span&输出每个图片页面的地址
foriinrange(1,int(pic_max)+1):
href=url+&39;+str(i)
print(href)
那么我们接下来就是进行寻找图片地址,保存下来;右键MM图片,点击检查可以发现如图:
<imgsrc=&34;alt=&34;width=&34;height=&34;>
如图所示,上面就是我们MM图片的具体地址了,保存它即可。
该步骤代码如下:
39;http://www.xxxx.com/26685&39;User-Agent&39;Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/50.0.2661.102UBrowser/6.1.2107.204Safari/537.36&39;html.parser&最大页数在span标签中的第10个
pic_max=soup.find_all(&39;)[10].text
39;h2&39;main-title&输出每个图片页面的地址
foriinrange(1,int(pic_max)+1):
href=url+&39;+str(i)
html=requests.get(href,headers=header)
mess=BeautifulSoup(html.text,&34;)
39;img&39;src&获取图片的名字方便命名
file_name=pic_url[&39;].split(r&39;)[-1]
39;wb')
f.write(html.content)
f.close()
到此分析结束,完整代码见文章开头……
感谢大家阅读,希望给小编一个关注,喜欢的话转发收藏一下,谢谢你们!
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
