爬虫 - 169tp图片
一、目标
爬取网址 https://www.169tp.com/gaogensiwa/ 前20页的美女图片
二、准备
通过pip安装第三方库 request、PyQuery、fake_useragent
pip install request
pip install PyQuery
pip install fake_useragent
项目下新建image目录
三、代码
import requests
from pyquery import PyQuery as pq
# 可自动生成浏览器UserAgent请求头
from fake_useragent import UserAgent
# 模拟浏览器请求头
headers = {
# 请求类型
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
# 浏览器类型 (有的网址服务器检测浏览器 反扒其中的一种) 可随机生成浏览器类型
'User-Agent': UserAgent().random
}
# 抓取每个表格图片url
def index_data(page):
url = 'https://www.169tp.com/gaogensiwa/list_3_{}.html'.format(page)
# 获取首页数据
response = requests.get(url,headers=headers).content.decode('gbk')
# 初始化网页数据
doc = pq(response)
# 取需要层级的块 list <a>
data = doc('.product01 li a').items()
# 遍历 a 获取href 链接
for i in data:
detail_url = i.attr('href')
detail_data(detail_url)
# 获取详情页url
def detail_data(urls):
response = requests.get(urls,headers=headers).content.decode('gbk')
doc = pq(response)
img_url = doc('.big_img p img').items()
for i in img_url:
image_url = i.attr('src')
download_img(image_url)
count = 0
# 保存图片
def download_img(image_url):
global count
response = requests.get(image_url, headers=headers).content
# 保存文件
with open('image/{}.jpg'.format(count), 'ab') as f: # a追加文件 b进制写入
f.write(response)
count += 1
# 提取前20页 /观察分页域名变化
for i in range(1, 20):
index_data(i)