帮我优化一下代码:import requests from lxml import html url = "https://www.baidu.com" 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" } response = requests.get(url, headers=headers) html_tree = html.fromstring(response.content) titles = html_tree.xpath('//ul[@class="s-hotsearch-content"]/li/a/text()') print(titles)
时间: 2024-04-18 14:30:17 浏览: 168
python爬虫基础教程:requests库(二)代码实例
以下是对给定代码的优化建议:
1. 可以将导入的库放在一起,提高代码的可读性。
2. 可以使用更具体的XPath路径表达式来获取标题,以提高代码的准确性。
3. 可以将获取标题的逻辑提取为一个函数,以便复用和测试。
4. 可以添加适当的错误处理机制,防止因异常情况导致程序中断。
下面是优化后的代码示例:
```python
import requests
from lxml import html
def get_titles(url):
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"
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # 检查请求是否成功
html_tree = html.fromstring(response.content)
titles = html_tree.xpath('//ul[@class="s-hotsearch-content"]/li/a/text()')
return titles
except requests.exceptions.RequestException as e:
print("请求出错:", e)
return []
url = "https://www.baidu.com"
titles = get_titles(url)
print(titles)
```
通过将获取标题的逻辑封装为函数,并添加了错误处理机制,可以提高代码的可读性和健壮性。这样,在其他地方需要获取标题时,只需调用该函数即可。
阅读全文