目录css
爬虫就是模拟客户端(浏览器)发送网络请求
,获取响应,按照规则提取数据的程序html
模拟客户端(浏览器)发送网络请求
: 照着浏览器发送如出一辙的请求,获取和浏览器如出一辙的数据python
elements的内容和爬虫获取到的url地址的响应不一样,爬虫中须要以当前url地址对应的响应为准提取数据chrome
headers = { "User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1", "Referer": "http://fanyi.baidu.com/?aldtype=16047"} response = requests.get(url,headers=headers)
from retrying import retry @retry(stop_max_attempt_number=3) def fun1(): print("this is func1") raise ValueError("this is test error")
headers= {"User-Agent":"....","Cookie":"cookie 字符串"}
使用json以前须要导入json
json.loads(json字符串)
豆瓣电视爬虫案例浏览器
elements
中定位数据/html/head/meta
:可以选中html下的head下的全部的meta标签//
:可以从任意节点开始选择//li
:当前页面上的全部的li标签/html/head//link
:head下的全部的link标签@符号的用途
//div[@class='feed']/ul/li
a/@href
:选择a的href的值/a/text()
:获取a下的文本/a//text()
:获取a下的全部的文本./a
当前节点下的a标签from lxml import etree element = etree.HTML("html字符串") element.xpath("")
"传智{}播客".format(1) "传智{}播客".format([1,2,3]) "传智{}播客".format({1,2,3}) "传智{}播客{}".format({1,2,3},[1,23,2]) "传智{}播客{}".format({1,2,3},1)
[i+10 for i in range(10)]
--->[10,11,12,...19]["10月{}日".format(i) for i in range(1,10)]
-->["10月1日","10月2日",..."10月9日"]{i+10:i for i in range(10)} #{10:0,11:1,12:2...19:9} {"a{}".format(i):10 for i in range(3)}#{"a0":10,"a1":10,"a2":10}
a = 10 if 4>3 else 20 # a = 10 a = 10 if 4<3 else 20 # a =20