Python基础语法学习路径
python 概念层级
表达式 → 创建、处理对象
语句 → 包含表达式
逻辑单元 → 函数或者类,由语句组成
模块 → .py 代码文件组成模块
包 → 定义一组有关系的文件,或者模块(包是文件夹,模块是其中的文件,且文件夹中包括一个init.py 文件)
程序 → 若干个包+若干个文件
十大易错点分别是哪些?
1、变量命名问题
2、数值和字符串计算的区别
3、列表与字典的区别
4、序列索引问题
5、字典索引问题
6、range()
7、两种运算符:赋值运算与比较运算
8、死循环问题
*9、f(x)与f(x)的区别
10、函数中return和print的区别
用Python实现第一个数据爬虫
我们来做一个豆瓣书籍评分的爬虫。
导入模块:
import requests
from bs4 import BeautifulSoup
print('成功导入模块')
代码注释写的很清楚,这里就不解释了。
代码如下:
# 提取标签
#print(soup.head) # 头部信息
print(soup.title) # 标题
print(soup.a) # 提取的第一个a标签
<title>新书速递</title>
<a class="nav-login" href="https://accounts.douban.com/passport/login?source=book" rel="nofollow">登录/注册</a>
# 标签、属性、元素
print(soup.a.name,type(soup.a.name))
print(soup.a.attrs,type(soup.a.attrs))
print(soup.a.text,type(soup.a.text))
soup.a.attrs['href']
a <class 'str'>
{'href': 'https://accounts.douban.com/passport/login?source=book', 'class': ['nav-login'], 'rel': ['nofollow']} <class 'dict'>
登录/注册 <class 'str'>
# find_all() → 查找所有标签
urls = soup.find('div',class_="grid-12-12 clearfix").find_all('a')
url_lst = []
for url in urls[::2]:
url_lst.append(url['href'])
# 保存所有url
print(len(url_lst))
print(url_lst[:5])
40
['https://book.douban.com/subject/30475767/', 'https://book.douban.com/subject/30488936/', 'https://book.
# 创建函数,采集页面信息
def get_data(ui):
ri = requests.get(url = ui)
soupi = BeautifulSoup(ri.text,'lxml')
# 访问页面 + 页面解析
infors = soupi.find_all('div',class_="detail-frame")
lst = []
for i in infors:
dic = {}
dic['书名'] = i.find('h2').text.replace('\n','')
dic['评分'] = i.find_all('p')[0].text.replace('\n','').replace(' ','')
dic['其他信息'] = i.find_all('p')[1].text.replace('\n','').replace(' ','')
dic['简介'] = i.find_all('p')[2].text.replace('\n','').replace(' ','')
lst.append(dic)
return lst
# 函数构建完成
url = 'https://book.douban.com/latest'
result = get_data(url)
# 调用函数采集数据
result[:3]
输出:
[{'书名': '人生海海',
'评分': '8.4',
'其他信息': '麦家/北京十月文艺出版社/2019-4-16',
'简介': '一个人在时代中穿行缠斗的一生,离奇的故事里藏着让人叹息的人生况味,既有日常滋生的残酷,也有时间带来的仁慈。麦家新作。'},
{'书名': '给所有人的黑塞童话',
'评分': '8.9',
'其他信息': '[德]赫尔曼·黑塞/未读·文艺家北京联合出版公司/2019-4',
'简介': '收录了黑塞的20篇童话作品,从十岁时写下的第一篇童话《两兄弟》,到献给爱妻的《鸢尾花》,再到源自烽火戏诸侯的《周幽王》。'},
{'书名': '33场革命',
'评分': '8.8',
'其他信息': '[古]卡内克·桑切斯·格瓦拉/上海人民出版社/2019-4',
'简介': '这本短篇小说集以革命后的古巴为背景,将社会比作每分钟三十三转、不断循环播放的跳针唱片,人们日复一日面临物质和精神的困境。作者是古巴革命领袖格瓦拉的外孙。'}]
数据转换:
# 数据转换 - dataframe
import pandas as pd
df = pd.DataFrame(result)
df
结果:
文源网络,仅供学习之用,侵删。
在学习Python的道路上肯定会遇见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会! https://shimo.im/docs/JWCghr8prjCVCxxK/ 《Python学习资料》
关注公众号【Python圈子】,优质文章每日送达。
来源:oschina
链接:https://my.oschina.net/u/4477231/blog/3779992