提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
(注:文章仅供学习,严禁做非法用途)
# 前言
学习如何通过Python代码实现获取某TAX局最新税收政策文件,应用到的模块有bs4
提示:以下是本篇文章正文内容,下面案例可供参考
一、获取思路
1、查看主网站结构及下一页链接
2、查看下一页网页结构
3、通过爬取数据保存到本地
二、获取步骤
1.模块和请求头数据
代码如下(示例):
from urllib import request, parse
from bs4 import BeautifulSoup
headers = {
'cookie': '====cookie内容====',
'User-Agent': '====浏览器请求头===='}
url = "http://www.chinatax.gov.cn/chinatax/n810341/n810755/index.html"
2.读取网页数据
代码如下(示例):
# 请求链接,打开网页读取内容
req = request.Request(url=url, headers=headers)
res = request.urlopen(req)
content = res.read().decode("utf-8")
3.解析页面链接和标题
代码如下(示例):
tax_soup = BeautifulSoup(content, 'lxml')
# 获取所有的章节链接
tax_list = tax_soup.select(".common_list > ul > li > a")
num_list = tax_soup.select(".common_list > ul > li > span") # 字号
4.遍历读取到的链接和标题
代码如下(示例):
#
for (tax, num) in zip(tax_list, num_list):
# print(tax, num)
title = tax.get_text() # 获取标题
href = "http://www.chinatax.gov.cn" + tax.get("href")
url_list.append(href)
注意下一页面的URL拼接
5.读取下一网页并解析
代码如下(示例):
next_req = request.Request(url=href, headers=headers)
next_content = request.urlopen(next_req).read().decode("utf-8")
# 解析出章节详情页的内容
soup = BeautifulSoup(next_content, 'lxml')
str_tax = ''
p_list = soup.select("#fontzoom > p")
for text in p_list:
# print('==========', text.get_text() + '\n')
a = text.get_text()
总结
1、该网站采用了cookie机制反爬,在请求头是需要带入cookie,否则无法访问;2、注意URL的拼接情况;
3、注意下一页面的解析,获取到的p元素是一个列表集;