3

爬虫教程:教你如何爬取网页数据

 1 year ago
source link: https://www.2808proxy.com/practical-application-of-crawler/how-to-crawl-web-page-data/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

爬虫教程:教你如何爬取网页数据

事实上,在当今的文化中,互联网上有大量有益的信息。 要获得大量有用的数据,我们需要的只是一定的技术工具和仔细的观察。 在这里,网络爬虫就是“技术手段”。 今天给大家分享一些爬虫的基础知识。

爬虫是什么?

爬虫是一种自动收集网络资料的程序。 示例包括 Google、百度等搜索引擎,它们每天运行大量的爬虫系统,从世界各地的网站收集数据供消费者访问。

复制网页请求。 启动一个假浏览器并导航到所需的网站。

数据检索。 我们打开后就可以自动获取到我们需要的网页数据。

保存信息 数据获取后需要持久化到存储设备,比如本地文件或者数据库。

现在我们知道了如何使用 Python 来创建我们自己的爬虫软件,让我们来谈谈 requests Python 库。

请求使用

在 Python 中启动 HTTP 请求的一个非常有用且用户友好的包称为 requests 库。

使用python爬虫代码模拟提交HTTP请求

发送获取请求

浏览器打开豆瓣首页最原始的请求其实就是get请求。

导入请求

  1. res = requests.get(‘http://www.douban.com’)
  2. 打印(分辨率)
  3. 打印(类型(res))
  4. >>>
  5. <响应 [200]>
  6. <类’requests.models.response’>

如您所见,我们收到了一个响应对象。 如果需要,我们可以使用 text 或 content 属性来访问网站返回的数据。

文本:提供数据的字符串表示。

内容:返回二进制数据

  1. 打印(类型(res.text))
  2. 打印(res.text)
  3. >>>
  4. <class ‘str’> <!doctype html>
  5. <html lang=”zh-cmn-hans” class=””>
  6. <头>
  7. <元字符集=”utf-8″>
  8. <meta name=”google-site-verification” content=”ok0wcgt20tbbgo9_zat2iacimtn4ftf5ccsh092xeyw” />
  9. <meta name=”description” content=”提供书籍、电影、音乐录音和城市独特文化生活的推荐、评论和价格比较。”>
  10. <meta name=”keywords” content=”豆瓣、播放、登录豆瓣”>…..

发送后期请求

通常需要提交邮寄申请表格。

r = requests.post(‘http://www.xxxx.com’, data={“key”: “value”})

其中必须传递的表单数据是字典数据的一种。

头部强化

必须进行一些标头修改,因为某些网站会拒绝没有标头的请求。 示例包括 UA、cookie、主机和其他数据。

header = {“user-agent”: “Mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/76.0.3809.100 safari/537.36”,

“cookie”: “your cookie}

res = requests.get(‘http://www.xxx.com’, headers=header)

解析 HTML

获取到网页返回的数据,也就是HTML代码后,我们要解析HTML,提取相关数据。

Beautiful Soul

名为“beautiful soul”的 Python 包的主要目的是解析来自网页的数据。

爬虫实战:爬虫豆瓣海报

我们可以通过豆瓣影人页面进入度影人影人照片页面。 比如刘涛,就有如下的英人图片页地址:

https://movie.douban.com/celebrity/1011562/photos/

现在分析这个页面

目标网站的页面分析

需要注意的是,互联网网站页面的内容总是在变化,因此您必须先学习本站的分析方法,然后再转向其他网站。

Chrome 开发者工具

正确使用 chrome 开发者工具很重要,它可以通过按 f12 键打开。

当我们右键单击任何图像并选择“Inspect”时,我们可以看到“Developer Tools”也已启动并且位于图像旁边,非常方便。

每一张图片都明确的放在了li标签中,li标签中的img包含了图片的地址。

一旦我们知道了这些限制,我们就可以使用beautifulsoup或者xpath来解析html页面,找到图片url。

只需要几行代码就可以完成图片url的提取。

从 bs4 导入 beautifulsoup

url = ‘https://movie.douban.com/celebrity/1011562/photos/’

res = requests.get(url).text

content = beautifulsoup(res, “html.parser”)

data = content.find_all(‘div’, attrs={‘class’: ‘cover’})

图片列表 = []

对于数据中的 d:

plist = d.find(‘img’)[‘src’]

picture_list.append(plist)

打印(图片列表)

>>>

‘https://img3.doubanio.com/view/photo/m/public/p2276569205.jpg’, ‘https://img1.doubanio. com/view/photo/m/public/p2165332728.jpg’]https://img3.doubanio.com/view/photo/m/public/p2276569205.jpg’, ‘https://img1.doubanio.com/view /photo/m/public/p2165332728.jpg’]https://img3.doubanio.com/view/photo/m/public/p2276569205.jpg’, ‘https://img1.doubanio.com/view/photo/ m/public/p2165332728.jpg’]

如您所见,这是一个组织良好的列表,其中保留了发帖人地址。

但这仅包含一页海报中的信息。 正如我们在查看时看到的那样,该页面具有很多分页功能。 如何处理分页。

本节通过一个具体的例子,阐述了爬虫的基本操作以及必要的Python库和函数,总结了从网页分析到数据存储的整个过程。 实际上,爬虫只是模拟请求、解析数据和存储数据。

有时,网站还可能实施进一步的反爬措施,如cookie验证、请求频率分析、对其他浏览器用户的访问限制、js混淆等。目前需要反抓取等反爬设备。 使用代理IP访问,将cookie插入到headers中,然后使用Selenium模拟浏览器的等待模式。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK