1.同步和异步的区别
同步:顺序执行,如果上一步没执行完则一直等待(阻塞)
异步:无序执行,不需要等待上一步就可以执行下一步
2.url中出现中文需要怎么办
url中不能出现汉字,一般都会经过编码
# 浏览器为了提升用户体验,会自动解析
# requests库会自动对汉字做编码
3.xpath的基本用法
匹配文本
获取属性
一个属性多个值 需要contains匹配
4.return和yield的区别
return 是函数返回值,当执行到return,后续的逻辑代码不在执行
循环中要返回数据,推荐用yield
它能返回数据,跟return类似
它不会中断循环
返回的是个生成器(generator),节省内存
5.未知总页数如何采集所有页的基本逻辑
perpage_url = url + f"index_{page}.html"
# 解析每页的图片
root = etree.HTML(cls.get(perpage_url))
imgs = root.xpath("//img/@src")
for img_src in imgs:
img_src = “http:” + img_src if not img_src.startswith(“http”) else img_src
img_name = img_src.split("/")[-1]
big_img_src = img_src.replace("/t/", “/pre/”)
big_img_name = “big_” + img_name
yield img_name, img_src, big_img_name, big_img_src
if not imgs:
print("到达最后一页")
break
page += 1
6.爬虫解析的数据格式包包括哪些
html\json\string
7.解析数据的手端有哪些?
html: xpath 正则, css , json:, string*)
8.网址拼接的方式有哪些?
# 拼接网址的两种方式
# 1.
# href = “https://www.ivsky.com” + href
# 2.
href = urljoin(url, href)
9.TODO是什么东西
继上次没有写完的地方接着写