python爬虫之路【1】
程序员文章站
2022-07-14 10:49:42
...
声明一下:爬取的图片没有用于任何用途和传播,就是用来练练手QAQ,应该没有侵权吧,怕出事源码就不放出来了
爬某摄影网站的照片,发现技术还是不到位啊。。。。
request+分析ajax请求+beautifulsoup
第一步:分析网页
在往下拉的过程中会不停的发出ajax请求
点击preview预览一下,找到每个相册的url
发现每个相册的url就在postlist这个列表里面,通过json库可以很好的处理json文件
第二步进入网页详情分析:
发现是个静态网页,那就很好爬了,直接用beautifulsoup或者pyquery解析网页获得src即可
第三步:写代码啦
说明一下几个要点:
构造请求头:
解析json数据:
解析详细页面:
最后就算保存和下载图片:
def save_img(content):
file_path = '{0}/{1}.{2}'.format(os.getcwd(), md5(content).hexdigest(), 'jpg')
if not os.path.exists(file_path):
with open(file_path, 'wb') as f:
f.write(content)
f.close()
def download_img(url):
print("正在下载...", url)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 '
}
try:
res = requests.get(url, headers=headers)
if res.status_code == 200:
save_img(res.content)
else:
return None
except RequestException:
print('获得详情页面失败', url)
return None
def save_to_file(content):
with open('imgs01.txt', 'a', encoding='utf-8') as f:
f.write(json.dumps(content, ensure_ascii=False) + '\n')
f.close()
最后当然可以开启多线程爬取
成果:
上一篇: tomcat container
下一篇: Tomcat项目部署方式