Python中文
首页
教程
问答
标签
搜索
登录
注册
用python抓取多个网页并将其写入csv文件
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我是一个新的网页抓取,我正试图从这个特定网站的每一页抓取所有的视频链接,并将其写入一个csv文件。首先,我尝试从这个网站上抓取URL:</p> <p><a href="https://search.bilibili.com/all?keyword=%E3%82%A2%E3%83%8B%E3%82%B2%E3%83%A9%EF%BC%81%E3%83%87%E3%82%A3%E3%83%89%E3%82%A5%E3%83%BC%E3%83%BC%E3%83%B3" rel="nofollow noreferrer">https://search.bilibili.com/all?keyword=%E3%82%A2%E3%83%8B%E3%82%B2%E3%83%A9%EF%BC%81%E3%83%87%E3%82%A3%E3%83%89%E3%82%A5%E3%83%BC%E3%83%BC%E3%83%B3</a></p> <p>浏览全部19页。我遇到的问题是,同样的20个视频链接被写了19次(因为我试图浏览全部19页),而不是(大约)19组不同的URL</p> <pre><code>import requests from bs4 import BeautifulSoup from csv import writer def make_soup(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') return soup def scrape_url(): for video in soup.find_all('a', class_='img-anchor'): link = video['href'].replace('//','') csv_writer.writerow([link]) with open("videoLinks.csv", 'w') as csv_file: csv_writer = writer(csv_file) header = ['URLS'] csv_writer.writerow(header) url = 'https://search.bilibili.com/all?keyword=%E3%82%A2%E3%83%8B%E3%82%B2%E3%83%A9%EF%BC%81%E3%83%87%E3%82%A3%E3%83%89%E3%82%A5%E3%83%BC%E3%83%BC%E3%83%B3' soup = make_soup(url) lastButton = soup.find_all(class_='page-item last') lastPage = lastButton[0].text lastPage = int(lastPage) #print(lastPage) page = 1 pageExtension = '' scrape_url() while page < lastPage: page = page + 1 if page == 1: pageExtension = '' else: pageExtension = '&page='+str(page) #print(url+pageExtension) fullUrl = url+pageExtension make_soup(fullUrl) scrape_url() </code></pre> <p>非常感谢您提供的任何帮助,我决定以这种特定的方式编写代码,这样我就可以更好地在整个Bili站点中推广这一点</p> <p>下面链接了一个屏幕截图,显示第一个链接如何总共重复19次:</p> <p><img src="https://i.stack.imgur.com/EnQZV.png" alt="Screenshot of csv file"/></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在倒数第二行中,您没有指定返回值<code>make_soup</code>。在<code>scrape_url</code>函数中,使用了一个名为<code>soup</code>的变量,但该变量只被赋值一次</p> <p>如果您将此行更改为<code>soup = scrape_url()</code>,那么它应该可以工作</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何将Python中的列表复制到给定的目标中?
9 回答
如何将python中的列表插入SQL表
5 回答
如何将python中的列表转换为numpy数组以放入十位
7 回答
如何将python中的列表输入javascript?
9 回答
如何将python中的列表返回给dag?
4 回答
如何将Python中的列表项重新排列成成对的元组/列表?
1 回答
如何将Python中的初始化对象序列化为XML?
6 回答
如何将python中的十进制字符串转换为数字?
1 回答
如何将Python中的原始输入文本转换为Tkinter中的标签?
9 回答
如何将python中的反斜杠命令转换为在Linux上运行
9 回答
如何将python中的命令行参数转换为字典?
8 回答
如何将python中的图像值传递到kivy中的kv文件?
7 回答
如何将Python中的图像数组(枕头对象)上传到Google云
1 回答
如何将Python中的图像编码为Base64?
4 回答
如何将python中的图像调整为灰度低分辨率,如MNIST时尚数据?
7 回答
如何将python中的多个html输出保存到单个文件(或多个)中?
4 回答
如何将Python中的多个ifelse语句重构为一个函数?
9 回答
如何将Python中的多处理与Django结合使用,从xml文件创建数千个模型实例?
1 回答
如何将python中的多级API响应转换为dataframe
5 回答
如何将python中的多线程编程模型转换为异步/等待模型?
3 回答