python3 [入门基础实战] 爬虫之四季花果园的采果模块

2024-01-14 19:58

本文主要是介绍python3 [入门基础实战] 爬虫之四季花果园的采果模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是本人第一次进行根据自己的项目进行爬取,因为处于爬虫初步阶段,现在只是爬取的是一个主标题,和一个副标题,并存入txt文件中,存的数据有些重复的。暂且先这样,来勉励自己吧。

#encoding=utf8
import requests
import re
from bs4 import BeautifulSoup
import osdef getSijiHuaGuo(huaguo_url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400'}page = 0r = requests.get(huaguo_url, headers)html = r.textsoup = BeautifulSoup(html, 'lxml')img_list = []img_list = soup.find(class_='picTextPagerList')# print(img_list)titles = soup.findAll('div', {'class': 'brief'})for each in titles:temptitle = each.get_text() + '\t\n'# print(temptitle)titleslist.append(temptitle)main_titles = soup.findAll('div', {'class': 'title'})print('*' * 40)for title in main_titles:tempStr = title.get_text() + "\t\n"# print(tempStr)titleslist.append(tempStr)titleslist = []
for page in range(0,21):huaguo_url = "http://www.sjhgw.cn/list.aspx?ci=22&pageIndex=%s" % pageprint('==============================正在获取:'+str(page)+'页数据==============================')print('url ===  '+huaguo_url)getSijiHuaGuo(huaguo_url)with open('C:\\QiuShiBaiKe.txt', 'a',encoding='utf-8') as f:f.write("".join(titleslist))# print(titleslist)

在爬虫过程中还是遇到一些坑,这里做一下总结:

由于re模块的不熟悉, 以后爬虫尽量用BeautifulSoup模块,这个挺适合新手的,

网络爬虫库用requests ,以前学习其他人的,一会urlib,urlib2 ,URllib3什么的, 整的自己老是记不住东西,

list 转string可以 一个string类型的.join(list) ,这样才可以变成字符串写入到文件中。

os 模块文件的写入可追加的是a,w 为可写入。这个以后要熟悉,也要记住

页面数值的变化从哪个范围到哪个范围可以用:

for page in range(0,21):

暂且就这么多,明天继续学习新东西!

这篇关于python3 [入门基础实战] 爬虫之四季花果园的采果模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/606340

相关文章

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2