前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python网络爬虫01---requests方式

Python网络爬虫01---requests方式

原创
作者头像
软件工程师Michael
发布2022-03-01 16:43:53
4410
发布2022-03-01 16:43:53
举报

一.网络爬虫工作原理

网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。

爬虫是 模拟用户在浏览器或者某个应用上的操作,把操作的过程、实现自动化的程序

当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入http://www.baidu.com

简单来说这段过程发生了以下四个步骤:

(1)查找域名对应的IP地址。 因为HTTP是建立在TCP之上,要三次握手

(2)向IP对应的服务器发送请求。

(3)服务器响应请求,发回网页内容。

(4)浏览器解析网页内容。

网络爬虫示意图
网络爬虫示意图

二.爬虫实例(requests方式实现简单爬虫)

我们用爬虫学习的经典网站:http://books.toscrape.com 作为要爬取数据的网站,郑重提醒:我们此处的爬虫仅仅作为兴趣研究,不提倡在实际生成环境运行爬虫程序,其中的原因就不赘述了,相信每个现代人都能明白。

代码实例:

import requests

from lxml import etree

'''

采用网络库下载网页时,要注意以下几点:

1. 不是所有的网站页面都可以直接下载,有些页面做了特殊后台处理(信息经过复杂动态化处理,

比如数据封装到js中,加入超时cookie,手机随机验证码等),用程序下载需要做特殊处理(比如加cookie)

2. 对于一些特殊网页,比如https://www.baidu.com/s?wd=北京冬奥会, 需要进行特殊处理才能下载

'''

def fetch_web_from_toscrape():

url = "wom /"

# r = requests.get(f"https://www.baidu.com/s?wd={keyword}")

kv = {}

response = requests.get(url, params=kv) # 等同于 requests.get(f"https://www.baidu.com/s?wd={keyword}"冬奥会赛程) https://www.baidu.com/s?wd=冬奥会赛程

print(response.url)

print(response.encoding)

with open("toscrape.html", "w", encoding="utf-8") as f:

f.write(response.text)

return response

def page_parse(content):

html_root = etree.HTML(content)

title_list = html_root.xpath("//article[@class='product_pod']/h3/a/text()")

print("标题列表:")

print(title_list)

print("图片列表:")

image_list = html_root.xpath("//article[@class='product_pod']/div[@class='image_container']/a/img/@src")

print(image_list)

#列表推导式

merge_image_list = [f"http://books.toscrape.com/{image}" for image in image_list]

print(merge_image_list)

if __name__ == "__main__":

response = fetch_web_from_toscrape()

content = response.text

page_parse(content)

【以上代码运行结果如下】:

http://books.toscrape.com/

ISO-8859-1

标题列表:

['A Light in the ...', 'Tipping the Velvet', 'Soumission', 'Sharp Objects', 'Sapiens: A Brief History ...', 'The Requiem Red', 'The Dirty Little Secrets ...', 'The Coming Woman: A ...', 'The Boys in the ...', 'The Black Maria', 'Starving Hearts (Triangular Trade ...', "Shakespeare's Sonnets", 'Set Me Free', "Scott Pilgrim's Precious Little ...", 'Rip it Up and ...', 'Our Band Could Be ...', 'Olio', 'Mesaerion: The Best Science ...', 'Libertarianism for Beginners', "It's Only the Himalayas"]

图片列表:

['media/cache/2c/da/2cdad67c44b002e7ead0cc35693c0e8b.jpg', 'media/cache/26/0c/260c6ae16bce31c8f8c95daddd9f4a1c.jpg', 'media/cache/3e/ef/3eef99c9d9adef34639f510662022830.jpg', 'media/cache/32/51/3251cf3a3412f53f339e42cac2134093.jpg', 'media/cache/be/a5/bea5697f2534a2f86a3ef27b5a8c12a6.jpg', 'media/cache/68/33/68339b4c9bc034267e1da611ab3b34f8.jpg', 'media/cache/92/27/92274a95b7c251fea59a2b8a78275ab4.jpg', 'media/cache/3d/54/3d54940e57e662c4dd1f3ff00c78cc64.jpg', 'media/cache/66/88/66883b91f6804b2323c8369331cb7dd1.jpg', 'media/cache/58/46/5846057e28022268153beff6d352b06c.jpg', 'media/cache/be/f4/bef44da28c98f905a3ebec0b87be8530.jpg', 'media/cache/10/48/1048f63d3b5061cd2f424d20b3f9b666.jpg', 'media/cache/5b/88/5b88c52633f53cacf162c15f4f823153.jpg', 'media/cache/94/b1/94b1b8b244bce9677c2f29ccc890d4d2.jpg', 'media/cache/81/c4/81c4a973364e17d01f217e1188253d5e.jpg', 'media/cache/54/60/54607fe8945897cdcced0044103b10b6.jpg', 'media/cache/55/33/553310a7162dfbc2c6d19a84da0df9e1.jpg', 'media/cache/09/a3/09a3aef48557576e1a85ba7efea8ecb7.jpg', 'media/cache/0b/bc/0bbcd0a6f4bcd81ccb1049a52736406e.jpg', 'media/cache/27/a5/27a53d0bb95bdd88288eaf66c9230d7e.jpg']

['http://books.toscrape.com/media/cache/2c/da/2cdad67c44b002e7ead0cc35693c0e8b.jpg', 'http://books.toscrape.com/media/cache/26/0c/260c6ae16bce31c8f8c95daddd9f4a1c.jpg', 'http://books.toscrape.com/media/cache/3e/ef/3eef99c9d9adef34639f510662022830.jpg', 'http://books.toscrape.com/media/cache/32/51/3251cf3a3412f53f339e42cac2134093.jpg', 'http://books.toscrape.com/media/cache/be/a5/bea5697f2534a2f86a3ef27b5a8c12a6.jpg', 'http://books.toscrape.com/media/cache/68/33/68339b4c9bc034267e1da611ab3b34f8.jpg', 'http://books.toscrape.com/media/cache/92/27/92274a95b7c251fea59a2b8a78275ab4.jpg', 'http://books.toscrape.com/media/cache/3d/54/3d54940e57e662c4dd1f3ff00c78cc64.jpg', 'http://books.toscrape.com/media/cache/66/88/66883b91f6804b2323c8369331cb7dd1.jpg', 'http://books.toscrape.com/media/cache/58/46/5846057e28022268153beff6d352b06c.jpg', 'http://books.toscrape.com/media/cache/be/f4/bef44da28c98f905a3ebec0b87be8530.jpg', 'http://books.toscrape.com/media/cache/10/48/1048f63d3b5061cd2f424d20b3f9b666.jpg', 'http://books.toscrape.com/media/cache/5b/88/5b88c52633f53cacf162c15f4f823153.jpg', 'http://books.toscrape.com/media/cache/94/b1/94b1b8b244bce9677c2f29ccc890d4d2.jpg', 'http://books.toscrape.com/media/cache/81/c4/81c4a973364e17d01f217e1188253d5e.jpg', 'http://books.toscrape.com/media/cache/54/60/54607fe8945897cdcced0044103b10b6.jpg', 'http://books.toscrape.com/media/cache/55/33/553310a7162dfbc2c6d19a84da0df9e1.jpg', 'http://books.toscrape.com/media/cache/09/a3/09a3aef48557576e1a85ba7efea8ecb7.jpg', 'http://books.toscrape.com/media/cache/0b/bc/0bbcd0a6f4bcd81ccb1049a52736406e.jpg', 'http://books.toscrape.com/media/cache/27/a5/27a53d0bb95bdd88288eaf66c9230d7e.jpg']

Process finished with exit code 0

小结:

实现爬虫的方式有很多种,后续文章中将陆续讲解比较常用的实现方式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档