在xpath python中垂直打印输出

2024-04-23 09:09:18 发布

您现在位置:Python中文网/ 问答频道 /正文

import lxml
from lxml import html
import requests
import re
import csv
with open('job.csv', 'wb') as csvfile:
    a=csv.writer(csvfile)
    a.writerow(["title","employer","salary","location"])
    for i in range(1):
        url = "http://www.jobs-salary.com/salaries.php?q=illumina&ml=25&lc=&state=&company=&title=&sb=relevance&ps={}".format(i)
        page = requests.get(url)
        # print page.text
        tree = html.fromstring(page.content)
        for item in tree.xpath('//table[@class="resTb"]'):

        # print tree.xpath('//table[@class="resTb"]//td/b/a/text()')
        info = {}
        info['title']=item.xpath('.//td/b/a/text()')
        h = info['title']
        print h

我得到的结果是

['Scientist I', 'Scientist', 'Scientist', 'Scientist', 'Biochemist', 'Scientist I', 'Biochemist', 'Scientist I', 'Scientist I', 'Biomedical Engineer', 'Biochemist', 'Fluidics Engineer', 'Biochemist And Biophysicists', 'Scientist I', 'Scientist I', 'Scientist', 'Scientist', 'Scientist I', 'Scientist I', 'Scientist II']

但我希望它是垂直的,没有括号和逗号 有人能帮忙吗?你知道吗


Tags: csvcsvfiletextimportinfotreetitlehtml
2条回答

您希望将列表输出为一个用换行符(\n)分隔的字符串。您可以通过调用列表上的join来实现这一点h

h = ['Scientist I', 'Scientist', 'Scientist', 'Scientist', 'Biochemist', 'Scientist I', 'Biochemist', 'Scientist I', 'Scientist I', 'Biomedical Engineer', 'Biochemist', 'Fluidics Engineer', 'Biochemist And Biophysicists', 'Scientist I', 'Scientist I', 'Scientist', 'Scientist', 'Scientist I', 'Scientist I', 'Scientist II']
print('\n'.join(h))

输出:

Scientist I
Scientist
Scientist
Scientist
Biochemist
Scientist I
Biochemist
Scientist I
Scientist I
Biomedical Engineer
Biochemist
Fluidics Engineer
Biochemist And Biophysicists
Scientist I
Scientist I
Scientist
Scientist
Scientist I
Scientist I
Scientist II

不要启动表,而是迭代每一行(trtable中)。在那里找到td。你知道吗

from lxml import html
import requests
import csv

url = "http://www.jobs-salary.com/salaries.php?q=illumina&ml=25&relevance&ps={}"
with open('job.csv', 'wb') as csvfile:
    a = csv.writer(csvfile)
    a.writerow(["title", "employer", "salary", "location"])
    for i in range(1):
        page = requests.get(url.format(i))
        tree = html.fromstring(page.content)
        for item in tree.xpath('//table[@class="resTb"]/tr')[1:]:
            row = [
                item.xpath('.//td[1]')[0].text_content(),  # title
                item.xpath('.//td[2]')[0].text_content(),  # employer
                item.xpath('.//td[3]')[0].text_content(),  # salary
                item.xpath('.//td[4]')[0].text_content(),  # location
            ]
            print row
            a.writerow(row)

相关问题 更多 >