python爬虫心得体会

我在本学期的python爬虫课获得了许多爬虫知识,对爬虫已经有了一定程度的了解,
1.多实践。在上课的时候要跟着老师演示的步骤自己实践,看会了并不等于自己会操作,一定要自己多动手去实际操作。
2.要基于一定的python基础和大数据应用基础来学习,不能够去死记硬背代码,而是自己平常花时间,一定要多练习,多多敲键盘,

一、网络爬虫的概念

网络爬虫又称网页蜘蛛、网络机器人,是一种按照一定规则。自动请求万维网网站并提取网络数据的程序或脚本。

二、网络爬虫的工作流程

网络爬虫的工作流程通常包括以下几个步骤:获取起始 URL,将 URL 加入待抓取队列,从队列中取出 URL 进行下载,解析 HTML 页面并提取有用信息,将新生成的 URL 加入待抓取队列,并将已经处理过的 URL 标记为已访问。

三、单个网页爬虫代码

爬取豆瓣剧情片排行榜动态内容单页分析

import json

import requests

# 基础URL 不顶事了
#url_base = "https://movie.douban.com/typerank?type_name=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action="

#经过分析的 动态内容url 才是我们要的结果
url = "https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=20&limit=20"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'Cookie': 'bid=hCw6GK7T3ko; _pk_id.100001.4cf6=e05499d4844cbfde.1697382901.; __yadk_uid=Y0K7d13OW6bvDo7Rfg4GEhEopPLKv9Vk; ll="118303"; _vwo_uuid_v2=D116B2284E0415DE6F0E8E62C0F3F1B7C|dbd80bec580d442e73cbc806b51e709a; ct=y; douban-fav-remind=1; __utmc=30149280; __utmz=30149280.1698504570.8.7.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmc=223695111; __utmz=223695111.1698504570.7.6.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; Hm_lvt_16a14f3002af32bf3a75dfe352478639=1698504600; Hm_lpvt_16a14f3002af32bf3a75dfe352478639=1698504600; ap_v=0,6.0; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1698558921%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DxUZ2pFPHLGI9UjAZ5BVOkGTqzr9mirz0hM9tSnQ4LgGBvkpYQRkEaveglj68M1Hs%26wd%3D%26eqid%3Dbd0c500a000673f800000006653d1f77%22%5D; __utma=30149280.1569954803.1697382901.1698557082.1698558922.11; __utma=223695111.1379090793.1697382901.1698557082.1698558922.10'
}
# 1、查看url_base返回结果
# result_base = requests.get(url_base, headers=headers)
# # print(result_base.apparent_encoding) # utf-8
# # print(result_base.encoding) # utf-8
# print(result_base.text) # 搜索榜一大哥 肖申克的救赎,查为空


# 2、对比分析F12-NETWORK-FETCH/XHR中的连接
result = requests.get(url, headers=headers)
# print(result.apparent_encoding) # utf-8
# print(result.encoding) # utf-8
#print(result.text) # 获取正常,不看了关掉


#r = json.loads() # 字符串是json、就可以用,常出现在正则表达式提取后
result_json = result.json() # 网页是json的时候,可以直接用
#print(result_json) # 成功转化成json,不看了关掉

movies = []
for i in result_json:
    title = i["title"]
    date = i["release_date"]
    types = i["types"]
    score = i["score"]
    actors = i["actors"]
    movie = {
        "title": title,
        "date": date,
        "type": types,
        "score": score,
        "actors": actors
    }
    # print(movie) # 获取正常,不看了关掉
    movies.append(movie)
    # break # 写循环过程,检验循环取值是否正确,第一个就断开,不看了关掉

print(movies)

四、解析网页数据的技术

 python中提供了很多解析网页的技术比如xpth,json,正则表达式等等

一、json技术详解
1.什么是json?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人们阅读和编写。它基于JavaScript语言的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。因此,它可以被任何编程语言轻松地读取和解析。

2. json技术在Python爬虫中的应用

在Python爬虫中,我们通常使用requests库来获取网络数据。而requests库返回的响应对象中包含了很多信息,其中就包括了我们需要获取的数据。通过对响应对象进行解析,我们可以快速地获取所需信息。

在这个过程中,json技术就显得尤为重要。由于请求返回的内容往往都是json格式的数据,因此我们需要使用Python内置的json库来解析这些数据。使用json库,我们可以将json格式的数据转换成Python内置类型的数据,如字典、列表等,以便于我们进行进一步的处理和分析。

二、xpath技术详解
1.什么是xpath?

XPath是一种在XML文档中查找信息的语言。它是一种基于树形结构的路径选择语言,可以通过元素和属性进行导航,并且支持通配符、谓语等高级特性。

2. xpath技术在Python爬虫中的应用

在Python爬虫中,我们通常使用lxml库来解析HTML或XML文档。而xpath技术就是lxml库中最重要的部分之一。通过使用xpath语法,我们可以快速地定位到所需信息所在的节点,并获取对应的内容。

在实际应用中,我们通常会将xpath表达式定义为一个字符串,并传递给lxml库进行解析。然后,通过对解析结果进行进一步处理和分析,我们可以快速地获取所需信息。

五、总结心得

我最大的收获就是学会自己看报错信息,观察要爬取的网页结构,并且分析结构,一步一步的进行爬取,虽然也有过许多次的失败,但是没成功爬取一个网页,我就会感到特别骄傲,成就感满满,也许这就是爬虫吸引我的魅力吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值