import requests from bs4 import BeautifulSoup head={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67" } content = requests.get("https://movie.douban.com/annual/2022?fullscreen=1&source=movie_navigation",headers = head).text soup = BeautifulSoup(content, "html.parser") all_links = soup.findAll('span',attrs={"class": "movie-name-text"}) for link in all_links: all_names = link.findAll('a') for name in all_names: print( name.string)
时间: 2024-04-13 16:24:39 浏览: 87
这段代码是用Python爬取豆瓣电影年度榜单的电影名称。它使用了`requests`库发送HTTP请求,并使用`BeautifulSoup`库对返回的HTML内容进行解析。
首先,我们指定了请求头`User-Agent`,模拟浏览器发送请求。然后,使用`requests.get()`方法发送GET请求,并将返回的内容赋值给变量`content`。
接下来,我们使用`BeautifulSoup`库将HTML内容解析为一个可操作的对象`soup`。
然后,我们使用`soup.findAll()`方法查找所有具有`class`为`movie-name-text`的`span`标签。这些标签包含了电影名称的信息。
接着,我们遍历所有找到的标签,并使用`link.findAll()`方法查找每个标签内部的所有`a`标签。这些标签包含了电影名称的具体文本内容。
最后,我们使用`name.string`获取每个电影名称的文本,并将其打印出来。
请注意,这段代码只是获取了豆瓣电影年度榜单页面中的电影名称,并打印出来。如果你想要进一步处理这些数据,可以根据需要进行相应的操作。
相关问题
import requests from bs4 import BeautifulSoup as BS import time,random url = 'http://www.biqu5200.net/2_2598' # header = {'User-Agent':'Mozilla/5.0(Windows NT 10.0;Win64; ' # 'x64;rv:109.0)Gecko/20200101 Firefox/113.0'} head = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 " "(KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36"} html = requests.get(url,headers=head) # # html.encoding = 'utf-8' # print(html.status_code) mybs = BS(html.text,'html.parser') # print(mybs.text) # print(mybs.tytle.string) mylinklist = mybs.find_all('a') # print(mylinklist) urllist = [] for link in mylinklist: url1 = link.get('href') print(url1) try: if url1[0:7] =='/2_2598': urllist.append('http://www.biqu5200.net/'+url1) except: pass #print(urllist) with open("D://789.txt",'w',encoding='utf-8') as file: for url2 in urllist[9:35]: html_zj = requests.get(url2,headers=head) mybs_zj = BS(html_zj.text,'html.parser') print(mybs_zj.h1.string) file.write(mybs_zj.h1.string+'\n') con = mybs_zj.find('div',id='content').text file.write(con+'\n') time.sleep(random.randint(1,5)/10) print("下载完毕!")
这段代码是一个简单的爬虫,用来从小说网站获取小说内容并保存到本地文件中。
- 第一行导入了requests和BeautifulSoup库,用于从网站获取HTML内容并进行解析。
- 第二行导入了time和random库,用于在程序中添加一定的延迟和随机数,以避免被网站识别为爬虫程序。
- 第三行定义了要爬取的网站的URL。
- 第四行定义了一个HTTP请求头,其中包含了浏览器的信息,以模拟真实用户的访问行为。但是该行代码被注释掉了,因此并不会被使用。
- 第五行定义了一个新的HTTP请求头,其中包含了浏览器的信息,用于发送HTTP请求。
- 第六行使用requests库向网站发起HTTP请求,并传入上面定义的请求头,获取网站的HTML内容。
- 第七行将获取到的HTML内容解析成BeautifulSoup对象。
- 第八行打印出整个HTML文档的文本内容。
- 第九行打印出整个HTML文档的title标签的文本内容。
- 第十行通过find_all()方法查找所有a标签,并将它们保存在一个列表中。
- 第十一到第十七行遍历a标签列表,将符合条件的URL添加到一个新的列表中。
- 第十九到第二十六行,使用with语句打开一个文件,遍历新的URL列表并依次获取每个URL的内容,将内容保存到文件中,并在每次获取内容之后,随机等待一段时间,以模拟真实用户的访问行为。
- 最后一行打印出下载完毕的提示信息。
将这段代码改一下只将爬取的前十张图片存入到python picture文件夹中import requests head={ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" } re=requests.get(url="https://www.iqiyi.com/?vfm=f_208_dbq&fv=88cd0334c6d6e1bf") print(type(re)) html=re.text print(html) from bs4 import BeautifulSoup soup=BeautifulSoup(html,'lxml') listtest1=soup.find_all("picture",attrs={"class":"video-item-preview-img"}) print(listtest1) print(len(listtest1)) print(listtest1[0]["id"]) for p in listtest1: print(p["id"]) re=requests.get("http:"+p["id"]) with open(p["id"].split('/')[-1]+'.jpg','wb') as f: f.write(re.content)
以下是修改后的代码,只将爬取的前十张图片存入到Python picture文件夹中:
```python
import requests
import os
from bs4 import BeautifulSoup
head = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
}
re = requests.get(url="https://www.iqiyi.com/?vfm=f_208_dbq&fv=88cd0334c6d6e1bf")
html = re.text
soup = BeautifulSoup(html, 'lxml')
listtest1 = soup.find_all("picture", attrs={"class": "video-item-preview-img"})
if not os.path.exists("picture"):
os.makedirs("picture")
count = 0
for p in listtest1:
if count >= 10:
break
print(p["id"])
re = requests.get("http:" + p["id"])
with open(os.path.join("picture", p["id"].split('/')[-1] + '.jpg'), 'wb') as f:
f.write(re.content)
count += 1
```
在上述代码中,首先添加了一个判断语句,判断是否存在名为 "picture" 的文件夹,如果没有则创建一个。然后通过一个计数器 count 来控制只下载前十张图片。同时在保存图片时,使用了 `os.path.join()` 函数,将文件路径拼接成一个完整的路径,避免了操作系统差异导致的路径错误问题。
阅读全文