如何利用Python爬取QQ趣图

1 LSGO软件技术团队

贡献人:宋益东

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

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

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

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

前期准备:

Python版本:Python3

运行平台:Windows

IDE:PyCharm

浏览器:Chrome

项目介绍:

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

网站信息:

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

具体步骤:

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

import requests

from lxml import etree

from om urllib.request imp import urlretrieve

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

def getPhoto():

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

# 确定 url

url = "http://qq.yh31.com/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.yh31.com' + 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软件技术团队在地理信息系统、数据统计分析、计算机视觉领域积累了丰富的研发经验,也建立了人才培养的完备体系。

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

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

欢迎关注,请扫描二维码:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180926B00YYA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券