Python爬取网站文本信息,新手保姆级教程 !

部署运行你感兴趣的模型镜像
  • 提取网页源代码——Requests 工具包

  • 在我们提取网络信息之前,我们必须将网页的源代码进行提取,Requests工具包现在可以说是最好用和最普及的静态网页爬虫工具,它是由大神Kenneth Reitz所搭建的。在Requests的官方介绍里,Requests所遵守的哲学理念是: 1.Beautiful is better than ugly. (美胜过丑)

  • 2.Explicit is better than implicit.(清晰胜过隐匿)

  • 3.Simple is better than complex.(简单胜过复杂)

  • 4.Complex is better than complicated.(复杂胜过繁琐)

  • 5.Readability counts.(可读性很重要)

  • Requests工具包的使用非常简单,最主要使用的函数为requests.get(url),其中参数url就是我们想提取源代码的网页,再通过requests.get(url).text将页面转换为字符串,就可以供我们使用了。

  • 信息提取——Xpath

  • 我们普通的网页一般都是XML文档格式,当我们想提取里面的内容时,我们需要借助Xpath来分解其中的格式,提取我们想要的内容。在了解Xpath之前我们需要知道四个基本概念:节点、元素、属性、文本 。我们来看一个例子:

  • <?xml version="1.0" encoding="ISO-8859-1"?>
    
     
    
    <bookstore>
    
     
    
    <book>
    
      <title>Harry Potter</title>
    
      <author>J K. Rowling</author>
    
      <year>2005</year>
    
      <price>29.99</price>
    
    </book>
    
     
    
    </bookstore>
    
    
  • 这就是一个网页的源码,其中 是文档节点, J K. Rowling 是元素节点, lang=“en” 是属性节点。 J K. Rowling 、2005 和29.99是文本(文本通常就是我们想爬取的内容)。

  • 实例分享——爬取豆瓣电影的信息

  • 接下来我们做一个很简单的实例分享,我们想爬取在豆瓣网上的电影《超时空同居》的导演和演员信息。

  • 首先我们找到电影的URL:
    在这里插入图片描述

  • 右键点击看网页的源代码 view page source(或者可以进入开发者模式(insepect)):

在这里插入图片描述

  • 接下来我们就进入网页源代码了,我们想要搜集的信息就在源代码里,只用输入关键字就可以查看到,比如这里我们输入’雷佳音’就定位到了我们想要寻找的位置:

  • ![img](https://img-blog.csdnimg.cn/img_convert/167d52d16330ca5a915aabbf284c4b2e.webp?x-oss-process=image/format,png

  • 接下来我们就需要分析TML的格式了,例如我们要找到所有的主演:
    在这里插入图片描述

  • img

  • 大家可以看到有一个普遍的规律:主演的名字所对应的节点名都为a,属性都为rel=“v:starring”,这样我们就可以很轻易的用xpath的语法定位到拥有这个元素的节点,然后将所有的结果找出。

  • 同理,导演的名字所对应的节点名为a,属性都为rel=" v:directedBy",我们同样可以通过这个定位找到相应的文本:
    img

  • 具体的代码如下:

  • import requests
    
    from lxml import etree
    
     
    
     
    
    url='https://movie.douban.com/subject/27133303/?from=showing'  #输入我们的url
    
    get = requests.get(url).text # get(url) 得到我们的网页, text将源网页转化为字符串
    
     
    
     
    
    selector = etree.HTML(get) # 将源码转换为xpath可以识别的TML格式
    
     
    
     
    
    info = {}  #字典用于储存信息
    
    info['电影'] = selector.xpath('//title/text()')[0].strip() # 定位电影名字
    
    info['导演']=selector.xpath('//a[@rel="v:directedBy"]/text()') # 定位导演名字
    
    info['演员']=selector.xpath('//a[@rel="v:starring"]/text()') # 定位演员名字
    
    print(info)
    
  • 最后我们得到一个字典集的结果:

  • {'电影': '超时空同居 (豆瓣)', '导演': ['苏伦'], '演员': ['雷佳音', '佟丽娅', '张衣', '于和伟', '王正佳', '陶虹', '李念', '李光洁', '杨玏', '范明', '徐峥', '杨迪', '方龄', '陈昊']}
    
  • 实例分享2——爬取带有json格式豆瓣电影的信息

  • 首先,json是一种轻量级的数据交换格式,它简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

  • 在我们爬虫的过程中,我们有时候可以在开发者模式返回的网页里找到完整的json格式的数据,这时候我们就可以运用requests包里的json函数将爬取到的原文本转化格式,从而方便我们提取内容。我们还是拿豆瓣电影举例:

  • ![img](https://img-blog.csdnimg.cn/img_convert/fa836c72a925d21fc1880b920cfc7090.webp?x-oss-process=image/format,png在这里插入图片描述

  • 这是点击分类后我们看到的电影信息,假如我们想爬取这些电影的信息,我们可以点击右键进入开发者模式(inspector)。
    在这里插入图片描述

在打开开发者模式之后一定要记得刷新一次,否则不会显示之前接收到的页面信息。然后我们选择右边标签的network,下面再点击XHR选项,我们就会看到一个返回的网页,双击它。
在这里插入图片描述

  • 上图就是打开后的json文件,由于我的电脑下载了json插件的缘故,它的格式要更清晰(使用Chrome浏览器的同学可以进入Chrome商店下载Juan Ramón JSON Beautifier Chrome插件)。Json文件其实也可以被理解为是一个大的字典,里面有很多层小的字典和列表,我们找到json网页后只需要用requests变成json格式即可方便的提取信息。 代码如下:

  • import requests
    url='https://movie.douban.com/j/new_search_subjects?sort=T&range=0,10&tags=&start=0'
    get = requests.get(url).json()   #用json()函数得到网页源码
    
    get = get['data']
    
    info = {}
    
    for i in range(len(get)):
    
       
    
        info[get[i]['title']] = [get[i]['directors'], get[i]['rate'] ]  #提取每部电影的导演和评分
    
    print(info)
    

以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

小编为对Python感兴趣的小伙伴准备了以下籽料 !

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的!

  • 学习时间相对较短,学习内容更全面更集中
  • 可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至优快云官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,用户之前问过如何使用提供的爬虫代码进行爬取,我回复了一个详细的使用指南。现在用户反馈说不太理解,作为初学者需要更详细的讲解。我需要先回顾之前的回答,可能有些步骤对新手来说不够基础。 用户现在明确表示自己是小白,所以需要从最基础的地方开始,比如安装Python、配置环境,甚至如何运行脚本。之前的指南可能跳过了这些步骤,直接进入代码修改和配置,这对新手来说可能太难了。 接下来,我需要将整个流程拆解得更细致,每一步都详细说明。例如,安装依赖库时,可能需要解释每个库的作用,以及如何在命令行中执行pip命令。用户可能不知道如何打开终端或者命令提示符,所以需要指导他们如何操作。 另外,用户可能对代码修改部分感到困惑,尤其是替换base_url和save_dir这些参数。需要具体举例说明,比如用实际的网站例子,并解释路径的设置。同时,要提醒用户注意网站的反爬机制,合法合规的问题,避免他们不小心触犯法律。 在运行脚本部分,可能需要详细说明如何保存文件,运行命令,并预期可能出现的错误。比如,如果用户直接复制代码,可能会遇到缩进错误或者缺少库的问题,这时候需要给出解决方案,比如如何安装缺失的库,或者检查代码格式。 此外,用户可能对高配置部分感到害怕,比如代理设置和请求头修改。作为小白,他们可能不需要立即接触这些内容,所以可能需要简化这部分,或者建议他们在基础使用成功后再尝试。 最后,需要强调注意事项,比如法律问题,尊重网站的robots.txt,以及下载速度的控制,避免对目标网站造成过大压力。同时,提供常见问题的解决方法,比如处理SSL错误或文件名乱码,这些是新手可能会遇到的问题。 总结来说,我需要把之前的指南转化为更口语化、分步骤的教程,避免专业术语,多用比喻和实际例子,确保用户能一步步跟着操作,并在每个步骤中预见到可能的问题和解决办法。同时,要给予鼓励,让他们在遇到问题时不要气馁,逐步学习和调试。</think>好的!我会用最详细易懂的方式,从零开始教你如何用Python进行图片爬取。以下是 **完全面向新手保姆教程**: --- ### **一、准备工作(5分钟)** #### 1. 安装Python 访问[Python官网](https://www.python.org/downloads/)下载安装包,安装时务必勾选 **"Add Python to PATH"** ![Python安装截图](https://example.com/python-install.png) *(如果找不到选项,请参考B站教程Python安装教程)* #### 2. 安装必备工具 按 `Win + R` 打开运行窗口 → 输入 `cmd` → 回车 → 输入以下命令: ```bash pip install requests beautifulsoup4 tqdm lxml ``` ![cmd安装截图](https://example.com/cmd-install.png) --- ### **二、创建爬虫文件(3分钟)** 1. 在桌面新建文件夹 `my_spider` 2. 右键文件夹空白处 → 新建 → 文本文档 → 重命名为 `image_crawler.py` 3. 右键用 **记事本** 打开文件,粘贴以下代码: ```python import os import requests from bs4 import BeautifulSoup from urllib.parse import urljoin from tqdm import tqdm class SimpleImageCrawler: def __init__(self, base_url, save_dir='images'): self.base_url = base_url self.save_dir = save_dir self.session = requests.Session() os.makedirs(save_dir, exist_ok=True) def download_image(self, url): try: response = self.session.get(url, timeout=10) filename = os.path.join(self.save_dir, url.split('/')[-1]) with open(filename, 'wb') as f: f.write(response.content) return True except: return False def crawl(self): response = self.session.get(self.base_url) soup = BeautifulSoup(response.text, 'lxml') # 查找所有<img>标签 img_tags = soup.find_all('img') image_urls = [urljoin(self.base_url, img['src']) for img in img_tags] # 下载图片 success_count = 0 for url in image_urls: if self.download_image(url): success_count += 1 print(f'下载完成!成功保存 {success_count}/{len(image_urls)} 张图片') if __name__ == "__main__": # 🎯修改这里!设置你要爬的网页 crawler = SimpleImageCrawler( base_url='https://httpbin.org/image', # 测试网站 save_dir='my_images' # 图片保存位置 ) crawler.crawl() ``` --- ### **三、第一次运行(2分钟)** 1. 双击打开 `image_crawler.py` → 按 `Ctrl + S` 保存 2. 在文件夹地址栏输入 `cmd` → 回车打开命令行 3. 输入命令运行: ```bash python image_crawler.py ``` 你会看到: ``` 下载完成!成功保存 3/3 张图片 ``` 此时打开 `my_images` 文件夹就能看到下载的图片! --- ### **四、爬取自己的网站(关键步骤)** #### 1. 修改目标网站 用记事本打开代码,找到这行: ```python base_url='https://httpbin.org/image' # ← 改成你的目标网址 ``` 例如改成: ```python base_url='https://picsum.photos/' # 免费图片网站 ``` #### 2. 调整图片选择规则 如果发现下载的不是想要的图片,修改这部分代码: ```python img_tags = soup.find_all('img') # ← 可能需要调整 ``` 比如网站图片在 `<div class="photo">` 里: ```python divs = soup.find_all('div', class_='photo') image_urls = [urljoin(self.base_url, div.find('img')['src']) for div in divs] ``` --- ### **五、常见问题解决** #### ❌ 报错 `ModuleNotFoundError` 说明缺少库,回到 **步骤一.2** 重新安装 #### ❌ 下载了0张图片 检查: 1. 网络是否正常 2. 网页是否需要登录 3. 图片是否通过JavaScript加载(需用Selenium) #### 💡 高技巧(可选) - 添加延迟:在 `download_image` 方法开头加 `time.sleep(1)` - 过滤图片类型:只下载jpg文件 ```python if not url.endswith('.jpg'): continue ``` --- ### **六、法律提示⚠️** 1. 不要爬取敏感数据 2. 查看目标网站的 `robots.txt`(在网址后加 `/robots.txt`) 3. 商业用途需获得授权 现在你已经掌握了基础爬虫技能!建议先用测试网站练习,成功后再尝试真实网站。如果遇到问题,随时可以问我具体哪一步不懂哦~ 😊
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值