爬取一页网页的电影名和评分,并且放进excle表格中
本帖最后由 gopy 于 2022-3-29 17:05 编辑目标
url:https://ssr1.scrape.center/
爬取目标网站的电影的名字和评分
并且保存在excls表格中
需要用到的模块
```
import requests
import pandas
```
调用整个流程
```python
html_content=gain_html()#网页内容的获取
name_list=analysis_name(html_content) #获取电影名称
score_list=analysis_score(html_content)#获取电影评分
```
1.爬取电影名字和评分则需要对网页内容进行获取
(网页内容获取)
先尝试获取第一页内容
```python
def gain_html():
url='https://ssr1.scrape.center/'
res=requests.get(url).text
return res
```
第一页内容获取到,继续把电影名字和评分进行解析获取
将会利用re正则获取电影名字
对网页分析
```
<a data-v-7f856186="" href="/detail/1" class="name">
<h2 data-v-7f856186="" class="m-b-sm">霸王别姬 - Farewell My Concubine</h2>
</a>
```
发现电影名由h2标签包含着
```
r'class="m-b-sm">(.*?)</h2>'
```
```python
def analysis_name(content):
name_list=re.findall(r'class="m-b-sm">(.*?)</h2>',content)
return name_list
```
解析完电影名字,继续将电影评分进行解析
```
<p data-v-7f856186=""
class="score m-t-md m-b-n-sm">
9.5</p>
```
对网页结构分析,发现评分在一个p标签里面并且在class="score m-t-md m-b-n-sm">类里面,有换行的情况
re规则如下
```
r'class="score m-t-md m-b-n-sm">\n(.*?)</p>'
```
```python
def analysis_score(content):
score_list=re.findall(r'class="score m-t-md m-b-n-sm">\n(.*?)</p>',content)
return score_list
```
把评分获取到放到列表中将会发现,列表中的数据会以有空格
咱们先对这些数据进行处理
利用python内置的strip函数进行处理
```python
def analysis_score(content):
original_list=re.findall(r'class="score m-t-md m-b-n-sm">\n(.*?)</p>',content)
score_list=[]
for score in original_list:
score_list.append(score.strip())
return score_list
```
处理完之后数据如下
到此一页的电影名字和评分都已经获取到并且已经放进了列表
咱们把一页的电影名和评分放进excle中
咱们需要安装两个库
```
#pandas库
pip install pandas -i https://pypi.doubanio.com/simple
pip install openpyxl -i https://pypi.doubanio.com/simple
```
```python
def preservation_to_excel(file_name,score):
df = db.DataFrame()
df['电影名'] = file_name
df['分数'] = score
df.to_excel('电影.xlsx', index=False)
```
代码整合
```
import re
import requests
import pandas as db
def gain_html():
url='https://ssr1.scrape.center/'
res=requests.get(url).text
return res
def analysis_name(content):
name_list=re.findall(r'class="m-b-sm">(.*?)</h2>',content)
return name_list
def analysis_score(content):
original_list=re.findall(r'class="score m-t-md m-b-n-sm">\n(.*?)</p>',content)
score_list=[]
for score in original_list:
score_list.append(score.strip())
return score_list
def preservation_to_excel(file_name,score):
df = db.DataFrame()
df['电影名'] = file_name
df['分数'] = score
df.to_excel('电影.xlsx', index=False)
def create_page():
url_list=[]
for page in range(1,11):
url=f'https://ssr1.scrape.center/page/{page}'
url_list.append(url)
return url_list
def main():
html_content=gain_html()
name_list=analysis_name(html_content)
score_list=analysis_score(html_content)
preservation_to_excel(name_list, score_list)
if __name__ == '__main__':
main()
```
------
电影评分用tinyMediaManager刮削就有{:301_986:} Ti28 发表于 2022-3-29 19:03
用的什么编辑器,pycharm还有办法长期使用吗
如果你是说强制登录,那用2021.2.2及以前的版本 感谢分享 用的什么编辑器,pycharm还有办法长期使用吗
写的很好,加个注释就更方便新手了,这个更像是自己的总结 Ti28 发表于 2022-3-29 19:03
用的什么编辑器,pycharm还有办法长期使用吗
用ja-netfilter-all就可以 dft2010 发表于 2022-3-29 21:21
写的很好,加个注释就更方便新手了,这个更像是自己的总结
感谢,一定一定 Ti28 发表于 2022-3-29 19:03
用的什么编辑器,pycharm还有办法长期使用吗
pycharm丫,社区版免费吧 学习了 厉害
页:
[1]
2