Python初学阶段这些问题你都搞懂了吗?(含学习路径)

冷暖自知 提交于 2020-04-24 17:41:46

Python基础语法学习路径

file

python 概念层级

表达式 → 创建、处理对象

语句 → 包含表达式

逻辑单元 → 函数或者类,由语句组成

模块 → .py 代码文件组成模块

包 → 定义一组有关系的文件,或者模块(包是文件夹,模块是其中的文件,且文件夹中包括一个init.py 文件)

程序 → 若干个包+若干个文件

十大易错点分别是哪些?

1、变量命名问题

file

2、数值和字符串计算的区别

file

3、列表与字典的区别

file

4、序列索引问题

file

5、字典索引问题

file

6、range()

file

7、两种运算符:赋值运算与比较运算

file

8、死循环问题

file

*9、f(x)与f(x)的区别

file

10、函数中return和print的区别

file

用Python实现第一个数据爬虫

我们来做一个豆瓣书籍评分的爬虫。

导入模块:

import requests
from bs4 import BeautifulSoup
​
print('成功导入模块')

代码注释写的很清楚,这里就不解释了。

代码如下:

file

# 提取标签
​
#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

结果:

file

file

file

文源网络,仅供学习之用,侵删。

在学习Python的道路上肯定会遇见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会! https://shimo.im/docs/JWCghr8prjCVCxxK/ 《Python学习资料》

关注公众号【Python圈子】,优质文章每日送达。

file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!