Python 数据抓取(一)

博主笔记,无任何使用教程。

第一个实例

需先安装requests模块

代码

实例功能:

获得yoosen.top首页内容

代码包含模块引入、函数的定义和使用、缩进风格、字符串的使用及简单的分支判断结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#引入requests模块
import requests
#定义get_content函数
def get_content(url):
resp = requests.get(url)
return resp.text
#定义url,值为要抓取的目标网站网址
url = "https://www.yoosen.top"
#调用函数返回值赋值给content
content = get_content(url)
#打印输出content的前50个字符
print("前50个字符为:", content[0,50])
#得到content的长度
content_len = len(content)
print("内容的长度为:", content_len)
#判断内容长度是否大于40KB
if content_len >= 40*1024:
print("内容的长度大于等于40KB.")
else:
print("内容的长度小于40KB.")

注释方法

  • 单行注释: “#”开头
  • 多行注释: ‘’’…’’’(成对三单引号)和”””…”””(成对三双引号)

模块和包

模块(Module)不带.py后缀

包(Package)可认为是若干模块集合,用import引入包或模块

函数和方法

1
2
3
def 函数名(函数1,函数2,函数3,......):
函数体
return 返回值

eg.

1
2
3
4
def get_content(url):
resp = requests.get(url) #requestes支持get方法和post方法
return resp.text
#text为resp的属性,得到响应的文本信息

对于class,类还不太明白

缩进风格

与大多数变成语言不同,Python采用缩进方式表示逻辑层次,而不是用“{ }”括起来的形式。

字符串

1
2
3
4
5
url = "https://www.yoosen.top"
#等同于下面一句
url = 'https://www.yoosen.top'
#单引号双引号可以互相包含,比如下一句。
"abc\"123\"" == 'abc"123"'

切片截取s的一段子字符串:

1
2
s[开始索引:终止索引]
#开始索引和终止索引-1分别指截取的子字符串左右端字符串中的索引值。
1
2
3
4
s[:终止索引]#从最左端字符截取,直至终止索引-1为索引值的最右端字符
s[开始索引:]#从开始,直至s最后一个字符
s[:]
s[开始索引:终止索引:步长]#从开始索引只想的字符开始以补偿为间隔进行选取

字符串支持“+”操作和“*”

+ 连接* 重复

格式化

Python支持%和format

%

1
2
3
4
>>> print("内容是%s" %"abc")
内容是abc
>>> print("内容是%s,长度是%d" %("abc",len("abc"))
内容是abc,长度是3

format

1
2
3
4
5
6
7
8
9
10
>>> print("内容是{},长度是{}".format("abc",len("abc"))
内容是abc,长度是3
>>> print("内容是{0},长度是{1}".format("abc",len("abc"))
内容是abc,长度是3
>>> print("内容是{1},长度是{0}".format("abc",len("abc"))
内容是3,长度是abc
>>> print("内容是{1},长度是{1}".format("abc",len("abc"))
内容是3,长度是3
>>> print("内容是{c},长度是{l}".format(c = "abc",l = len("abc"))
内容是abc,长度是3

控制结构

1
2
3
4
5
#判断内容长度是否大于40KB
if content_len >= 40*1024:
print("内容的长度大于等于40KB.")
else:
print("内容的长度小于40KB.")
1
2
3
4
5
6
7
8
9
if 表达式1:
语句1
elif 表达式2:
语句2
elif 表达式3:
语句3
...
else:
语句n

if __name__ == ‘__main__‘:

第一个程序中“if __name__ == ‘__main__‘:”语句后正常执行,当其他程序import第一个程序中的函数时,不会执行第一个程序“if __name__ == ‘__main__‘:”后面的语句,避免了其他程序重复执行第一个程序的所有代码,实现按需取需要的部分。

注意:
__name__前后均为两个“_”,main前后同理

本文标题:Python 数据抓取(一)

文章作者:Yoosen

发布时间:2017年10月10日 - 19:10

最后更新:2017年10月11日 - 11:10

原始链接:http://www.yoosen.top/2017/10/10/Python-数据抓取(一)/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%