美文网首页
作业:1.4

作业:1.4

作者: 云清尧 | 来源:发表于2016-07-01 10:17 被阅读0次

    <h2>代码</h2>
    <pre>
    from bs4 import BeautifulSoup
    import requests

    headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
    }

    def download(url):
    r = requests.get(url,headers = headers)
    if r.status_code != 200:
    return

    filename = url.split("?")[0].split("/")[-2]
    
    target = "./{}.jpg".format(filename)
    
    with open (target,"wb") as fs:
        fs.write(r.content)
    
    print("%s => %s" % (url, target))
    

    def main():
    #获取1到10页的图片:
    for page in range(1,10):
    url = 'http://weheartit.com/inspirations/taylorswift?scrolling=true&page={}.'.format(page)
    r = requests.get(url, headers=headers)

        #检查是否访问正常,正常状态码是200,异常则跳过
        if r.status_code != 200:
            continue
    
        #解析网页得到地址并下载
        soup = BeautifulSoup(r.text, 'html.parser')
        imgs = soup.find_all('img',class_='entry-thumbnail')
        for img in imgs:
            src = img.get('src')
            download(src)
    

    if name == "main":
    main()

    只有直接运行脚本才会执行main函数

    </pre>

    <h2>成果</h2>

    Paste_Image.png Paste_Image.png

    <h2>总结</h2>
    编写前的思考:
    1.找到异步加载数据作为启示页
    2.请求解析
    3.定位元素,这里我想做道附加题,爬取图片链接后的大图
    4.筛选信息
    5.爬取多页
    编写时发现没有办法请求到相关数据。看了答案后才发现自己的思路与答案有很大的偏差。首先是代理问题。我的电脑上装哟全局VPN,所有没有填写代理。其次是浏览器的伪装,可能之前就是因为没有伪装所以爬取不到数据。这次的作业主要是参考答案完成的。对于 download函数的编写还不是很明白,主要是其中的split等方法的具体规则还不清楚。
    在编写的过程中,答案所给的网址是“beach”而作业要求的网址是“Taylor Swift”,其次答案中的地址也改变了。
    <h2>反思</h2>
    download函数的左右一是下载图片,二是将下载的图片名称打印出来。

    相关文章

      网友评论

          本文标题:作业:1.4

          本文链接:https://www.haomeiwen.com/subject/ghltjttx.html