爬虫 - 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)

posted @ 2020-03-29 16:01  吴某1  阅读(2728)  评论(0编辑  收藏  举报