1. 程式人生 > >爬取某網的妹紙圖

爬取某網的妹紙圖

自己動手編寫了一個爬蟲,用來爬取某網站的妹紙圖片。

先介紹下思路吧

首先:獲取包含某頁圖片的HTML程式碼,找到各個分頁的字尾規律

其次:找到包含單個圖片的xpath

最後:儲存在本地就好了

多的不說:上程式碼,有什麼不明白的歡迎留言。

import requests
from lxml import etree


class Get_image():
    def __init__(self, url):
        self.headers = {
            "User-Agent" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
            }
        self.urls = url

    def parse_multi_page(self):
        # 15 代表每頁的圖片個數  4 代表 爬取的頁數
        number = [[j + i * 15 for j in range(1,16)] for i in range(4)]

        page = 1
        for url,index in zip(self.urls, number):
            res = requests.get(url, self.headers)
            html = etree.HTML(res.content)

            parse_result = html.xpath("//div[@class='pic']//li//a/img/@src")


            # 有多少個jpg 就有多少個num(圖片下標)
            for image_url, num  in zip(parse_result,index):
                res = requests.get(image_url, self.headers)
                with open('girl/{}.jpg'.format(num), "ab") as f:
                    f.write(res.content)

            print("第" + str(page) + "頁抓取完畢")
            page = page + 1



def main():
    start_url = "http://www.hunter-its.com/m/{}.html"
    url = []
    # 5 - 1 代表爬取的頁數
    for i in range(1,5):
        temp_url = start_url.format(i)
        url.append(temp_url)
    get_image = Get_image(url)
    get_image.parse_multi_page()



if __name__ == "__main__":
    main()