4
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, "lxml")
link = soup.select('#page_list > ul > li > a')
## 用相同的 select 方法,得到了该级元素的内容,即 <a...</a>
#+ 然后用 get(element_name) 方法,获得"href" 属性值
print(link[0], 2*"\n", link[0].get("href"))
## 同时,我们可以进一步用相同的方法提取: title、img 等信息
<a class="resule_img_a" href="http://bj.xiaozhu.com/fangzi/2597552363.html" target="_blank">
<img alt=" 西域 复式 2 人地铁近 做饭 可发票 出差~" class="lodgeunitpic" data-growing-title="2597552363" lazy_src="https://image.xiaozhustatic3.com/12/51,0,77,114178,3000,2000,9006ac99.jpg" src="../images/lazy_loadimage.png" title=" 西域 复式 2 人地铁近 做饭 可发票 出差~"/>
</a>
http://bj.xiaozhu.com/fangzi/2597552363.html
0.1.3 实践 Task:爬取酷狗 Top500 的数据
方法是:requests+BeautifulSoup
• url:https://www.kugou.com/yy/rank/home/1-8888.html?from=rank
• 代码:kugou.py, 用 Python3 运行(修复了原代码书中的一个 bug)
• 思路:(1) 观察翻页的各页 url 主入口如何获取;(2) 分别在各页爬取
0.1.4 正则表达式:Python re 模块
• search()
• sub()
• findall()
可以用正则表达式直接解析返回的 html 文件,得到有用的信息。
In [5]: import re
## re.search()
a = "one1two2three3"
info = re.search('\D+', a)
print(info, "\n", info.group(), "\n")
## re.sub()
new_info = re.sub('\d+', ' ', a)
print(new_info)
## re.findall()
评论0