首先,装入requests库和beautiful soup
import requests
from bs4 import BeautifulSoup
先爬取第一页的数据,将初始url设置为搜索页的第一页:http://www.dianping.com/search/keyword/2/10_%E6%9C%9D%E9%98%B3%E5%A4%A7%E6%82%A6%E5%9F%8E
start_url = 'http://www.dianping.com/search/keyword/2/10_%E6%9C%9D%E9%98%B3%E5%A4%A7%E6%82%A6%E5%9F%8E'
然后通过chrome的检查功能,找到网页的对应的user-agent 和host,按照这个headers 来修改requests的请求头部;如果网速慢的话,就不要设置timeout参数了。
headers = {
'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
}
r = requests.get(start_url, headers = headers )
通过请求,获得服务器的反馈。然后使用美丽汤,将r.text 做成汤,便于后续的数据查找;
soup = BeautifulSoup(r.text,'html.parser')
做成汤之后,使用美丽汤的find_all函数:观察原网页的html代码发现,所有店名都在h4的标签中,因此利用美丽汤的find_all函数,找到所有标签为h4的对象,获得一个返回的列表。
name_list = soup.find_all('h4')
将列表打印出来之后发现,有一些不需要的内容页在其中,因此对列表进行切片,最后获得的列表只有店铺的名称和tag。
i in name_list:
print(i)
for i in name_list:
print(i)
#打印结果
<h4>频道:</h4>
<h4>分类:</h4>
<h4>地点:</h4>
<h4>Tomacado花厨(朝阳大