node_list = root.xpath("//span[@class="jobInfo"]/text()") #/ul/li/div[@class='jobInfo']/span ^ SyntaxError: invalid syntax. Perhaps you forgot a comma?
时间: 2023-12-21 18:04:35 浏览: 163
这是一个常见的Python语法错误,是因为在使用双引号包含字符串时,字符串内部如果有双引号需要转义。在你提供的代码中,xpath表达式中的双引号没有进行转义,导致Python解释器无法正确识别。因此,需要将内部的双引号改为单引号,并在外部使用双引号包含整个字符串,或者使用反斜杠对内部的双引号进行转义,如下所示:
方法一:
```python
node_list = root.xpath('//span[@class="jobInfo"]/text()')
```
方法二:
```python
node_list = root.xpath("//span[@class=\"jobInfo\"]/text()")
```
这两种方法都可以解决你遇到的问题。
相关问题
import re import requests from lxml import etree import numpy as np import pandas as pd from lxml import etree import numpy as np import requests headers= { # 模拟浏览器头部信息,向豆瓣服务器发送消息 "User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122 Safari / 537.36" } #url="https://www.5iai.com/#/jobList" url="https://www.5iai.com/#/jobList" response = requests.get(url,headers = headers) response.encoding = 'utf8' html = response.text root = etree.HTML(html) #node_list = root.xpath('//span[@class="datePay"]/text()') #/ul/li/div[@class='jobInfo']/span node_list = root.xpath('/html/body/div[3]/div/div[4]/div[1]/ul/li[2]/div[1]/a/text()') print(node_list) #保存为txt np.savetxt('C:/Users/11148/Desktop/77/daijing_list.txt',node_list,fmt='%s') 检查一下该代码是否有误
这段代码有一些问题:
1. 第一行的 import re 似乎没有用到,可以删掉。
2. 第11行和第12行导入了重复的模块,可以删掉其中的一行。
3. 第14行和第15行重复定义了 root 变量,可以删掉其中的一行。
4. 第16行的 xpath 表达式可能有问题,要根据具体的 HTML 结构来修改。
5. 第17行的 print(node_list) 可能会输出一些调试信息,可以考虑删掉或者注释掉。
6. 第18行的保存文件路径需要根据自己的实际情况修改。
修改后的代码如下:
```
import requests
from lxml import etree
import numpy as np
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
}
url = "https://www.5iai.com/#/jobList"
response = requests.get(url, headers=headers)
response.encoding = 'utf8'
html = response.text
root = etree.HTML(html)
node_list = root.xpath('//div[@class="jobInfo"]/a/text()')
print(node_list)
np.savetxt('C:/Users/11148/Desktop/77/daijing_list.txt', node_list, fmt='%s')
```
def parse(url): try: res = requests.get(url, headers=headers) html = etree.HTML(res.text) books = html.xpath('//ul[@class="bang_list clearfix bang_list_mode"]/li') for b in books: name = b.xpath('./div[@class="name"]/a/text()')[0] link = b.xpath('./div[@class="name"]/a/@href')[0] comment = b.xpath('./div[@class="star"]/a/text()')[0] author = b.xpath('./div[@class="publisher_info"][1]/a[1]/@title')[0] publisher = b.xpath('./div[@class="publisher_info"][2]/a/text()')[0] price_n = b.xpath('./div[@class="price"]/p[1]/span[@class="price_n"]/text()')[0] price_r = b.xpath('./div[@class="price"]/p[1]/span[@class="price_r"]/text()')[0]这段代码的意思
这段代码是一个Python函数,它接收一个URL参数,并使用requests库发送HTTP请求获取该URL对应的HTML网页。然后,使用etree库解析HTML文档,提取其中的书籍信息,并将其存储在一个字典中。
具体来说,该函数首先通过XPath表达式选取所有包含书籍信息的<li>元素。然后,对于每个<li>元素,使用XPath表达式提取书名、链接、评论、作者、出版社、价格等信息,并将其存储在一个字典中。最后,将所有字典存储在一个列表中,作为函数的返回值。
阅读全文