Python实训day05am【正则表达式、网络爬虫】

  • Python实训-15天-博客汇总表

目录

1、正则表达式

2、爬虫


  

  • 论坛:掘金、csdn、博客园
  • 刷题:力扣、牛客、实验楼
  • 资料: w3、菜鸟、gitee
  1. W3school:https://www.w3school.com.cn/
  2. codecademy(编程学院):https://www.codecademy.cn/
  3. stack Overflow(中文社区):https://www.soinside.com/
  4. stack Overflow(外国社区):https://stackoverflow.com/
  5. leetcode(力扣):https://leetcode-cn.com/
  1.  文件的设计模式
  2. spring的设计模式
  3. ioc、aop
  4. jQuery--->id、class

Java 文件系统(IO流)的设计模式——涉及到很多的接口和类,使用什么结构来设计这些接口和类之间的关系的。
高级-->12000+,没有回答上来。

Spring的设计模式——并不是太底层,如果稍微有面试准备的话,都差不多能回答上来。
高级-->12000+,没有回答上来。

Spring的特征,IOC和AOP——基础理解。
中级-->9000,没有回答上来。

Jquery中的class选择器,如何来定位元素?(初级-->6000)   忘了?没有回答上来
    $('.xxxx')  $('#xxxx')、getElementsByClassName('xxxx')、querySelector('.xxxx')

一线城市是没有他的生存空间的!!
二线城市,郑州,4000左右--->杂活,边角料--->2年或3年对自己的提升非常有限,给自己干废了!!

1、正则表达式

Python中正则表达式的详细教程:https://www.jb51.net/article/65286.htm

# python中的正则
s = '豫B·A696B';
# s中的字母去掉
# "".join(list(filter(str.isdigit, s)))ss = '';
for x in s:if ord(x) < 65 or ord(x) > 91:ss = ss + x;
print(ss)  # 豫·696ss = [x for x in s if ord(x) < 65 or ord(x) > 91]
print("".join(ss))  # 豫·696
#如果在java中遇到这个问题,实现步骤。
String s = '豫B·A696B';
#去掉字母#手动遍历
String ss = "";
for(int i = 0; i < s.length(); i++){if(s.charAt(i) < 65 || s.charAt(i) > 90){ss = ss + s.charAt(i);}
}
System.out.print(ss)#正则【推荐】String ss = s.replaceAll("[A-Z]","");#支持正则
'''
python中的正则
re.sub(pattern, repl, string[, count])pattern正则替换成的内容字符串
将一个字符串中所有满足patter正则的部分,替换成repl
'''
import res = '豫B·A696B';
p = re.compile("[A-Z]");  # 编译生成正则规则
ss = re.sub(p, '', s)
print(ss)  # 豫·696

编程语言有很多种,每一种都适合有不同的应用场景,但是它们的思想和使用都是相通的,要求:起码要足够精通一门。

笔: 铅笔、圆珠笔、彩笔、毛笔,等等,起码要会使用一种笔~

笔<------>写一篇非常好的文章/写出来一副非常美的字/画非常美的画。

大作业--实训报告(分组完成一个小的功能)

2、爬虫

熟练爬虫(第一阶段爬,爬取到的html,就是我们想要的内容)。

  1. 锻炼编程能力和编程思维
  2. 锻炼对编程语法的磨合度
  3. 锻炼基础数据结构的使用(list、dict等)

动手!

爬取起点中文网,第一页(前20)小说的名字/类型/得票数
连接地址:https://www.qidian.com/rank/yuepiao/year2022-month01(2022年1月份的排名)

import requests
from bs4 import BeautifulSoup as BS# 伪装成浏览器
hds = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}resp = requests.get('https://www.qidian.com/rank/yuepiao/year2022-month01/', headers=hds);print(resp.status_code)  # 200ct = resp.content.decode('utf-8');# print(ct)
# print(ct.index('410334'))bs = BS(ct, 'lxml');names = bs.select('.rank-body .book-mid-info h2 a');
types = bs.select('.rank-body .book-mid-info .author a:nth-child(4)');  # !!!nth-child(4)
# votes = bs.select('.rank-body .book-right-info .total p span span');  # 暂不考虑
print(len(names))  # 20
print(len(types))  # 20
# print(len(votes))# for x in votes:
#     print(x.get_text().decode())# 定位元素后,要么就是获取属性值-->['属性名'],要么就是获取元素内容-->.get_text()bookinfos = [];for i in range(len(names)):name = names[i];tp = types[i];bookinfos.append(name.get_text() + '-' + tp.get_text());print(bookinfos)  # ['星门-玄幻', '明克街13号-都市', ...]

加油。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部