课程【核心150讲:系统掌握Python网络爬虫】学习问题(1)

weixin_45018295 2019-11-09 09:51:40
问题:Xpah语句加“[0]”的理解对么,这样的分析方法好不好,还有其他分析方法么?(叩谢)
直接请看代码
----------------------------------------------------------------------------------------------------------------------------------------------
import requests
from lxml import etree
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
'Cookie':'__guid=253446671.3408581543116182000.1572157233008.2388; uuid=597c579e-cc50-460e-ab03-9ee0056f7643; ganji_uuid=3790440803065380517902; lg=1; track_id=8134445303664640; isTouFangGuaziIndex=1; guazitrackersessioncadata=%7B%22ca_kw%22%3A%22%25e7%2593%259c%25e5%25ad%2590%22%7D; sessionid=4c12ebe0-c0f5-4610-9b9e-32d8bc873815; antipas=4bU608H056218i78eC03458U5; cityDomain=sh; clueSourceCode=%2A%2300; user_city_id=13; cainfo=%7B%22ca_a%22%3A%22-%22%2C%22ca_b%22%3A%22-%22%2C%22ca_s%22%3A%22sem_360ss%22%2C%22ca_n%22%3A%22360pc_shouye%22%2C%22ca_medium%22%3A%22-%22%2C%22ca_term%22%3A%22%7Bkeyword%7D%22%2C%22ca_content%22%3A%22%22%2C%22ca_campaign%22%3A%22%22%2C%22ca_kw%22%3A%22%25e7%2593%259c%25e5%25ad%2590%22%2C%22ca_i%22%3A%22-%22%2C%22scode%22%3A%2210103213212%22%2C%22keyword%22%3A%22-%22%2C%22ca_keywordid%22%3A%2213434503264%22%2C%22ca_transid%22%3A%22%22%2C%22platform%22%3A%221%22%2C%22version%22%3A1%2C%22track_id%22%3A%228134445303664640%22%2C%22guid%22%3A%22597c579e-cc50-460e-ab03-9ee0056f7643%22%2C%22display_finance_flag%22%3A%22-%22%2C%22client_ab%22%3A%22-%22%2C%22sessionid%22%3A%224c12ebe0-c0f5-4610-9b9e-32d8bc873815%22%2C%22ca_city%22%3A%22sh%22%7D; _gl_tracker=%7B%22ca_source%22%3A%22-%22%2C%22ca_name%22%3A%22-%22%2C%22ca_kw%22%3A%22-%22%2C%22ca_id%22%3A%22-%22%2C%22ca_s%22%3A%22self%22%2C%22ca_n%22%3A%22-%22%2C%22ca_i%22%3A%22-%22%2C%22sid%22%3A38614533066%7D; preTime=%7B%22last%22%3A1573095554%2C%22this%22%3A1572157232%2C%22pre%22%3A1572157232%7D; monitor_count=8'
}

url = 'https://www.guazi.com/sh/buy/o1/'
resp = requests.get(url, headers=headers)
text = resp.content.decode('utf-8')
# print(text)
html = etree.HTML(text)
ul = html.xpath('//ul[@class="carlist clearfix js-top"]')
print(type(ul))
print(ul)
print(type(ul[0]))
print(ul[0])
print(ul[1])
-------------------------------------------------------------------------------------------------------------------------------------------
<class 'list'>
[<Element ul at 0x38025d0>]
Traceback (most recent call last):
<class 'lxml.etree._Element'>
<Element ul at 0x38025d0>
File "E:/程序设计学习/Python/PythonTest/实战-爬取瓜子-调试.py", line 18, in <module>
print(ul[1])
IndexError: list index out of range

Process finished with exit code 1
-------------------------------------------------------------------------------------------------------------------------------------------
上面代码中,上半部是代码,下半部是输出。根据打印输出的内容,有如下理解:
1.ul在获得html.xpath的赋值后是一个 列表
2.ul[0]的打印结果显示的是ul这个列表的第一个元素
3.ul[1]执行打印输出,报“list index out of range”,说明ul列表只含有一个元素
另,非常开心通过之前发帖得知type()和print()函数连用的效果。这里就用上了。
...全文
58 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧