将爬取的文字保存到文件夹并输出:
import requests
from lxml import etree
#网址:定州市2021年度公立医院部分财务信息公示
url="http://www.dzs.gov.cn/col/1598582296916/2022/02/16/1644977083060.html"
res=requests.get(url,headers={'User-Agent':'Mozilla/4.0(compatible;MSIE7.0;Wind dowsNT5.1;Trident/4.0:InfoPath.2;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;360SE'})
res.encoding='utf-8'
#爬取到的文字都储存在texts里
webpage=res.text
#打开文件
fo=open("pc.txt","w",encoding='utf-8')
#开始爬取
page=etree.HTML(webpage)
texts=page.xpath('//*[@id="conN"]//p//span/text()')
#将爬到的text写入文件,同时在终端输出方便及时查看
for text in texts:
print(text)
fo.write(text)
#关闭文件
fo.close()
将爬取的文字只输出(不保存到文件夹):
import requests
from lxml import etree
#网址:定州市2021年度公立医院部分财务信息公示
url="http://www.dzs.gov.cn/col/1598582296916/2022/02/16/1644977083060.html"
res=requests.get(url,headers={'User-Agent':'Mozilla/4.0(compatible;MSIE7.0;Wind dowsNT5.1;Trident/4.0:InfoPath.2;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;360SE'})
res.encoding='utf-8'
#爬取到的文字都储存在text里
webpage=res.text
#开始爬取
page=etree.HTML(webpage)
texts=page.xpath('//*[@id="conN"]//p//span/text()')
#将爬到的text在终端输出
for text in texts:
print(text)
ps:(如何得到xpath路径)
1.在目标网页中右键,选“检查”
2.找到目标文字对应的元素
3.在对应元素中右键,选择copy—copy xpath
4.得到//*[@id="conN"]/p[5]/span[1],然后再在后面加上/text()表示元素下的文字的xpath(而非元素的xpath):
//*[@id="conN"]/p[5]/span[1]/text()
5.表示所有p[]和所有span[]下的文字的xpath
//*[@id="conN"]//p//span/text()
(把/p[5]变成//p,把/span[1]变成//span)