翻译这段代码 nb = requests.get(url, headers=head).text from lxml import etree sb = etree.HTML(nb) whh = sb.xpath('//tbody/tr[not(@class)]')
时间: 2023-03-19 07:23:54 浏览: 73
我理解你的意思是,你想要翻译这段代码:nb = requests.get(url, headers=head).text from lxml import etree sb = etree.HTML(nb) whh = sb.xpath('//tbody/tr[not(@class)]'),对吧?翻译如下:nb = requests.get(url,headers = head).text 从lxml导入etree sb = etree.HTML(nb)whh = sb.xpath('//tbody / tr [not(@class)]’)
相关问题
解决一下以下代码报错的import requests from lxml import etree url = 'https://www.shanghairanking.cn/institution' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } res = requests.get(url=url,headers=headers) print(res.status_code) html = etree.HTML(res.text) lis = html.xpath("//*[@id="__layout"]/div/div[2]/div[2]/div[1]") print(len(lis))
这段代码有一个小错误,就是在xpath的语句中双引号没有转义,需要改成单引号。修改后的代码如下:
```python
import requests
from lxml import etree
url = 'https://www.shanghairanking.cn/institution'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
res = requests.get(url=url, headers=headers)
print(res.status_code)
html = etree.HTML(res.text)
lis = html.xpath('//*[@id="__layout"]/div/div[2]/div[2]/div[1]')
print(len(lis))
```
这样就可以正确运行了,输出页面中指定元素的数量。
import requests from lxml import etree headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57' } while url_1 <= 10: url='https://wh.58.com/chuzu/?PGTID=0d200001-0009-e3b2-a9f7-02996ea362cc&ClickID='+'url_1' url_1='1' url_1= url_1 + 1 page_text=requests.get(url=url,headers=headers).text #数据解析 tree=etree.HTML(page_text) li_list=tree.xpath('//ul[@class="house-list"]/li') for li in li_list: title=li.xpath('./div[2]/h2/a/text()')[0] print(title)
这段代码中存在一些错误:
1. `requests` 和 `etree` 库的导入语句需要用 `import` 关键字,应写成:
```python
import requests
from lxml import etree
```
2. 在 while 循环中,`url_1` 变量需要先初始化为整数 1,才能进行比较和递增。因此,需要将 `url_1 = '1'` 的位置调整到 while 循环外面。
3. 在拼接 URL 时,`url_1` 应该使用变量的值,而不是字符串 `'url_1'`。因此,需要将 `url='https://wh.58.com/chuzu/?PGTID=0d200001-0009-e3b2-a9f7-02996ea362cc&ClickID='+'url_1'` 改为 `url = 'https://wh.58.com/chuzu/?PGTID=0d200001-0009-e3b2-a9f7-02996ea362cc&ClickID=' + str(url_1)`。
4. 在循环中需要对 `url_1` 进行递增,可以改为 `url_1 += 1`。
以下是修改后的代码:
```python
import requests
from lxml import etree
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57'
}
url_1 = 1
while url_1 <= 10:
url = 'https://wh.58.com/chuzu/?PGTID=0d200001-0009-e3b2-a9f7-02996ea362cc&ClickID=' + str(url_1)
page_text = requests.get(url=url, headers=headers).text
# 数据解析
tree = etree.HTML(page_text)
li_list = tree.xpath('//ul[@class="house-list"]/li')
for li in li_list:
title = li.xpath('./div[2]/h2/a/text()')[0]
print(title)
url_1 += 1
```
上面的代码可以爬取 58 同城武汉地区租房信息的前 10 页,并打印出每条租房信息的标题。需要注意的是,爬虫的使用需要遵守网站的相关规定和法律法规,不得用于非法用途。