from bs4 import BeautifulSoup from lxml import html import xml import requests
#不加头部直接爬取的话,返回值为空 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'}
url = "https://movie.douban.com/chart"
#Get该网页从而获取该html内容 f = requests.get(url,headers=headers) #用lxml解析器解析该网页的内容, f.text也是返回的html soup = BeautifulSoup(f.content, "lxml") #尝试获取节点,因为calss和关键字冲突,所以用class_ soup.find_all('div',class_="p12" )
#测试路径 a=soup.select('#content > div > div.article > div > div > table') #print(a) b=soup.select('div.pl2>a') #print(b) c=soup.find_all('div',class_="pl2") #print(c)
#找到div并且class为pl2的标签,发现有a和p两个标签 for i in soup.find_all('div',class_="pl2"): #在每个对应div标签下找a标签,find_all得出的是列表,不能直接用text a=i.find_all('a') for j in a: #循环输出a标签的文本内容 # strip()移除字符串头尾指定的字符(默认为空格或换行符)或字符序列(只能删除开头或结尾,不能删除中间部分字符) print(j.text.strip())
执行结果:
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试