网页都有自己唯一的URL;
网页都是HTML来描述页面信息;
网页都使用Http/Https协议来传输Html数据爬虫的设计思路;
requests作为请求头
PyQuery使用于解码网页信息
os作为创建文件
------------------------------------------------------------------------------------------------------
import requests # 要求,请求
from pyquery import PyQuery # 解码
import os # 创建文件
# 反爬
# 设置用户
def get_content(url):
# 设置请求头--模拟成浏览器去访问
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6824.400 QQBrowser/10.3.3137.400"
}
# 整个网站是get请求,故使用request.get content.decode("utf-8")适用于解码文件
# 射之前请求网站 - 解码
html = requests.get(url, headers=headers).content.decode("utf-8")
# print(html)
# requests.get(url)
# 加载html代码
pq_html = PyQuery(html)
# id 和 class标签 == id--#号 class--
# items是条目生成器,可用迭代for循环
# <li class="span3">
span3_items = pq_html(".span3").items()
# print(span3_items)
for item in span3_items:
# print(item)
# 向下查找 层层查询 attr: 追加
url_img = item.find("img").attr("src")
name = item.find("img").attr("title")
download_img = requests.get(url_img, headers=headers).content
print(name, url_img)
# 打开这个文件,把下载的文件保存在给文件中
with open("03-02-爬girl/" + name + '.jpg', 'wb') as file:
file.write(download_img)
# 程序入口
if __name__ == '__main__':
# os是创建 getcwd是当前绝对路径 path是路径 join是拼接
file_name = os.path.join(os.getcwd(),'03-02-爬girl')
# 判断当前的路径是否存在
if not os.path.exists(file_name):
# 如果不存在 就创建路径
os.makedirs(file_name)
url="https://www.dbmeinv.com/?pager_offset=2"
get_content(url)