爬虫笔记


发起请求

1
2
3
4
5
6
7
8
9
10
h = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'}
res = requests.get("url", headers = h)
# 返回请求状态码,200即为请求成功
print(r.status_code)

# 返回页面代码
print(r.text)

# 对于特定类型请求,如Ajax请求返回的json数据
print(r.json())

建立会话

1
2
3
4
5
6
7
# 保持会话
# 新建一个session对象
sess = requests.session()
# 先完成登录
sess.post('maybe a login url', data=data, headers=headers)
# 然后再在这个会话下去访问其他的网址
sess.get('other urls')

解析网页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 选用lxml解析器来解析
soup = BeautifulSoup(html, 'lxml')
# 获取标题
print(soup.title)

# 获取文本
print(soup.title.text)

# 通过标签定位
print(soup.find_all('a'))

# 通过属性定位
print(soup.find_all(attrs={'id': 'link1'}))

# 标签 + 属性定位
print(soup.find_all('a', id='link1'))