爬取京东历史图书图片并下载到本地____requests库

# 写在开头:保持每天更新一篇压力还是挺大的,仔细看看之前更新的文章发现。我的文章对新手不太友好,因为已经有的特别好的python基础入门资料太多,我也不想只做一个搬运工。时间有限,我的文章只能作为一个补充,以及自我记录总结的工具,作为我个人学习python的一个记录。目前想写出很好的实战价值的文章还是有些难度,能力和时间都不够。但是我会向这个方向努力。

#那么我博客的价值在哪里呢?我觉得目前的价值是对我更大;如果说是对不小心看到我这里的读者来说。如果看到我的探索和记录,希望我的行为能给你坚持的力量;同时,我的部分文章中是我切实在菜鸟学习过程中踩过的各种坑,其实如果能静下心来阅读还是有很多收获的,我保证。当然,你如果有兴趣也可以和我一道学习,并来和我交流。这条路我是一定会坚持走下去的。

# 今天放一篇,我三天前自己写的一个爬虫,过程中遇到很多问题,不过能做出来也很开心了。后期我会完善,继续把这篇代码扩展。



code:

import requests
import re


def craw(url, page):
    # url = "https://list.jd.com/list.html?cat=1713,3258,3317"
    headers = {
        "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Mobile Safari/537.36",
    }
    response = requests.get(url, headers=headers, timeout=10)
    html = response.text
    # print(html)
    urls = re.findall(
        r'<div class="p-img".*?img width="200" height="200" data-img="1" src="//(img.*?\.360buyimg.com/.*?\.jpg).*?</a>',
        html, re.S)

    x = 1
    for b_url in urls:
        p_url = "https://" + str(b_url)
        # print(b_url)
        print(p_url)
        filename = "C:/Users/XIEG2/Desktop/ll/" + str(page) +"--" + str(x) + ".jpg"
        fb = open(filename, 'wb+')
        req = requests.get(p_url)
        # print(req.encoding)
        # print(req.text)
        fb.write(req.content)  # 哈哈,神奇  原来就是 content 方法
        fb.close()
        x += 1

# 选择爬取页数
def craw_page(page):
    for i in range(1, page):
        url = "https://list.jd.com/list.html?cat=1713,3258,3317&page=" + str(i)
        craw(url, i)
craw_page(10) # 数字可以随意指定,建议大家数字设小一点,免得给服务器造成负担。当然,京东服务器轻易也不会崩溃。哈哈



posted @ 2018-06-01 21:24  defaulttest  阅读(290)  评论(0编辑  收藏  举报