Python中文
首页
教程
问答
标签
搜索
登录
注册
什么是最好的方式来刮这个网站?(非硒)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p><strong>在开始之前,TLDR位于底部</p> <p>因此,我正试图根据用户输入的搜索结果,从<a href="https://rarbgmirror.com/" rel="nofollow noreferrer">https://rarbgmirror.com/</a>中搜寻torrent magnet链接及其torrent标题名称。我已经通过以下代码了解了如何使用BeautifulSoup和请求来实现这一点:</p> <pre><code>from bs4 import BeautifulSoup import requests import re query = input("Input a search: ") link = 'https://rarbgmirror.com/torrents.php?search=' + query magnets = [] titles = [] try: request = requests.get(link) except: print("ERROR") source = request.text soup = BeautifulSoup(source, 'lxml') for page_link in soup.findAll('a', attrs={'href': re.compile("^/torrent/")}): page_link = 'https://www.1377x.to/' + page_link.get('href') try: page_request = requests.get(page_link) except: print("ERROR") page_source = page_request.content page_soup = BeautifulSoup(page_source, 'lxml') link = page_soup.find('a', attrs={'href': re.compile("^magnet")}) magnets.append(link.get('href')) title = page_soup.find('h1') titles.append(title) print(titles) print(magnets) </code></pre> <p>我几乎可以肯定,这段代码中没有错误,因为代码最初是为<a href="https://1377x.to" rel="nofollow noreferrer">https://1377x.to</a>编写的,目的相同,如果您查看这两个网站的HTML结构,它们对磁铁链接和标题名称使用相同的标记。但是如果代码有错误,请向我指出</p> <p>经过一些研究,我发现问题在于<a href="https://rarbgmirror.com/" rel="nofollow noreferrer">https://rarbgmirror.com/</a>使用JavaScript动态加载网页。因此,经过更多的研究,我发现硒被推荐用于此目的。使用selenium一段时间后,我发现使用它有一些缺点,例如:</p> <ul> <li>刮削的缓慢速度</li> <li>运行应用程序的系统必须安装selenium浏览器(我计划使用pyinstaller打包应用程序,这将是一个问题)</li> </ul> <p>因此,我请求一种替代selenium的方法来抓取动态加载的网页</p> <p><strong>TLDR</strong>: 我想要一个替代selenium的方法来抓取一个使用JavaScript动态加载的网站</p> <p>PS:GitHub回购协议 <a href="https://github.com/eliasbenb/MagnetMagnet" rel="nofollow noreferrer">https://github.com/eliasbenb/MagnetMagnet</a></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果你只使用Chrome,你可以通过谷歌查看<a href="https://github.com/puppeteer/puppeteer" rel="nofollow noreferrer">Puppeteer</a>。它速度快,并且与Chrome开发工具集成得很好</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
2 回答
如何添加要在Bokeh中使用的新font.ttf文件?
9 回答
如何添加要显示的矩阵XY轴编号和XY轴
2 回答
如何添加计数?
5 回答
如何添加计数器函数?
1 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
7 回答
如何添加计数器来跟踪while循环中的月份和年份?
2 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
4 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
1 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
5 回答
如何添加评论拉梅尔亚姆
1 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
8 回答
如何添加谷歌地点自动完成到Flask?
9 回答
如何添加超时、python discord bot
9 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
6 回答
如何添加跟随游戏的敌人精灵
3 回答
如何添加路径以便python可以找到程序?
5 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答