分享

如何利用Python爬取QQ趣图

 老马的程序人生 2020-08-17


LSGO软件技术团队 

贡献人:宋益东

如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。

If you like the content here, the greatest help you can give me is forwarding, so tell your friends and encourage them to learn together.

人生苦短,我用python;作为一种“胶水语言”,python为无数码农带来了便利;同时,越来越多的python工程师被标榜为”高薪党”;“全民python"的时代渐渐到来,你准备好了吗?

下面,就让我们用一个实例,具体地感受一下python 的魅力吧!

前期准备:

  1. Python版本:Python3

  2. 运行平台:Windows

  3. IDE:PyCharm

  4. 浏览器:Chrome

项目介绍:

本项目利用 python 对网页上的图片进行爬取并下载,由于该网站较为简单、原始数据信息直白、无反爬干扰等,读者可从整体上直观地了解到爬虫的流程,适合大部分初学者;同时,该文章展示了源代码,且本项目上升空间很大,读者可将其加以延伸,在此不过多赘述。

网站信息:

http://qq./zjbq/0636124.html

具体步骤:

首先,我们导入第三方库,方便之后使用

import requests
from lxml import etree
from om urllib.request imp import urlretrieve

为操作规范,我们定义一个函数

def getPhoto():

注:以下内容为函数内部内容,需整体向右缩进

# 确定 url
url = "http://qq./zjbq/0636124.html"

# 发起请求
response = requests.get(url)

打开网页,查看源代码可知,应采用 “utf-8” 的编码格式

因此,添加如下代码:

# 将 ASCII 格式转换为可包含中文格式的 utf-8
response.encoding = 'utf-8'

接下来,对目标网页的数据进行解析

# 将数据转化为 html 对象
html =  = etree.HTML(res(ML(response.text)  

# 查找数据
data =  = html.xpath('//('//div[@class = "c_content_overflow"]/p/img/@src')

对网页进行拼接:

# 定义num记录数据
num = 1
    for photoStr in data:
        urlStr = 'http://qq.' + photoStr

注:以下内容全在for循环里

最后下载图片

新建一个目录,在当前文件下依次操作:右键、选择 New、选择 Directory:

右键新建的目录,选择 Copy Path,复制目录路径:

之后用urlretrieve函数下载图片:

# 注:其中“——?——”部分为刚才复制的路径
urlretrieve(urlStr,r'C:\Users\——?——\PycharmProjects\reptile\图片/%d.jpg'%num)
       num += 1
# 其中%d.jpg'%num可实现动态命名

0K,后就调用函数了。

getPhoto()

这是运行后的结果:

好了,这个简单的爬虫就写好了,希望能帮到大家。See You!


经过8年多的发展,LSGO软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。

欢迎对算法设计与实现感兴趣的同学加入,与我们共同成长进步。

本微信公众平台长期系统化提供有关机器学习、软件研发、教育及学习方法、数学建模的知识,并将以上知识转化为实践。拒绝知识碎片化、耐心打磨技能、解决实际问题是我们的宗旨和追求。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多