xpath之提取的文本及列表数据去除空格换行符核心

该文章演示了如何使用Python的requests和lxml库从网页抓取公司职位的工资信息。通过XPath提取数据后,利用strip()方法进行数据清洗,去除文本中的换行符和空格,将结果存储为CSV文件。
摘要由CSDN通过智能技术生成

精简简要
1、用xpath提取的单行文本可以用xpath(‘normalize-space(xpath提取的语法)’)
2、用xpath提取的是列表数据,但数据前后有换行符、空格的,不能用normalize-space,需要二次提取转化,才能变成列表是去除换行符和空格符的。
例子:xpath_list=['\n 2700-3000元/月\n \n ', '\n 2800-3000元/月\n \n ', '\n 薪资面议\n \n ', '\n 3000元/月\n \n ', '\n 3000-4600元/月\n \n ', '\n 3200-5000元/月\n \n ', '\n 4000-8000元/月\n \n ', '\n 3000-3500元/月\n \n ', '\n 2500-4000元/月\n \n ', '\n 薪资面议\n \n ', '\n 2800-3000元/月\n \n ', '\n 薪资面议\n \n ', '\n 3000-4000元/月\n \n ', '\n 2700-3000元/月\n \n ', '\n 2900-3500元/月\n \n ', '\n 3500-4000元/月\n \n ', '\n 2500-3500元/月\n \n ', '\n 2800-3500元/月\n \n ', '\n 5500-7000元/月\n \n ', '\n 2200-4500元/月\n \n ']

prt=[p.strip() for p in list]

print(prt)
[‘2700-3000元/月’, ‘2800-3000元/月’, ‘薪资面议’, ‘3000元/月’, ‘3000-4600元/月’, ‘3200-5000元/月’, ‘4000-8000元/月’, ‘3000-3500元/月’, ‘2500-4000元/月’, ‘薪资面议’, ‘2800-3000元/月’, ‘薪资面议’, ‘3000-4000元/月’, ‘2700-3000元/月’, ‘2900-3500元/月’, ‘3500-4000元/月’, ‘2500-3500元/月’, ‘2800-3500元/月’, ‘5500-7000元/月’, ‘2200-4500元/月’]

完整代码:
import requests
from lxml import etree
url=‘https://www.0737anhua.com/search/1?subarea_id=21’
headers={
‘user-agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.70’,
}
req=requests.get(url=url,headers=headers)
text_str=req.text
xpath_str=etree.HTML(text_str)

公司名

company_name=xpath_str.xpath(“//td[contains(@class,‘company’)]/a/@title”)

职位名

job_name=xpath_str.xpath(“//td[contains(@class,‘job’)]/a/@title”)

工资

wages_data=xpath_str.xpath(“//div/table/tbody//td[6]/text()”)
#wages_data=xpath_str.xpath(“normalize-space(//div/table/tbody//td[6]/text())”) 这样去到的就会把列表值变为单行文本值
prt=[p.strip() for p in wages_data]

for company,job,wages in zip(company_name,job_name,prt):
with open(‘安化人才网2.csv’,‘a+’) as f:
f.write(‘{},{},{}\n’.format(company,job,wages))
f.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值