Beautiful Soup是一个用于解析HTML / XML的Python包。此软件包的最新版本是版本4,导入为bs4。
我,我正在尝试从 json 结构中删除每个产品的图像网址(仅 jpg 扩展名)以及“alt”中可用的名称,如(下面也提到)“属性”>“
我的抓取机器人正常工作,直到我在数据库中添加商家列。 Scraper.py 文件抓取成功商户并正确记录在数据库中,但添加商户后比较机器人不比较...
我是网络抓取新手,我需要从 Indeed 抓取员工评级和评论,但我的代码无法运行。你能告诉我我的代码有什么问题吗?非常感谢您的帮助...
任何人都可以帮助我使用 beautifulsoup 将风味和品牌详细信息作为关键值对。我是新来的: 期望的输出是 口味 - 青苹果 品牌-Carabau html 看起来像...
def scrapedPage(URL, user_agent): 如果(不是 os.environ.get('PYTHONHTTPSVERIFY', '') 和 getattr(ssl, '_create_unverified_context', None)): ssl._create_default_https_context = ssl。
我正在尝试从 homedepot 抓取产品信息,例如价格、产品详细信息、规格、图像等。我能够抓取所有这些信息,但现在我不知道如何抓取 pr...
Ebay scraper 制作了一个数据框,但无法将这些数字用于未来的图形
我正在尝试使用 python 为 ebay 制作一个简单的抓取工具,问题是我无法使用我制作的数据框。 我的代码: 导入请求 从 bs4 导入 BeautifulSoup 将 pandas 导入为 pd 从 csv 导入重新...
从 python 中查找或选择元素以使用 beautifulsoup 进行抓取
我不知道如何选择表中的以下项目 class="table-info" 使用 python 和 beautifulsoup,我想提取: 电话 电子邮件 网站 主要活动(li 元素文本 w...
使用 Python 和 Beautiful Soup(来自 IMDb)进行 HTML 抓取
例如,我想从此页面获取电影评级并逐行打印评级, 我已经用 BS4 提取了名字和发行年份,但不知道如何处理收视率...... 导入请求 来自 BS4
我正在抓取一个位于页面不同位置的元素。我当前的代码有些工作,但会随机不返回该值。当我设置卖家=无时,它会使其他ins...
我想使用Python 3.6从DIV中抓取H3标题 - 从页面: https://player.bfi.org.uk/search/rentals?q=&sort=title&page=1 注意页码变化,递增...
仅从 BeautifulSoup 中的 URL 中过滤 id 号
我已经到了这样的地步 打印(汤.td.a) 结果是 这里有一些文字 我正在尝试找出如何过滤
仅从 beautiful soup 中的 url 中过滤 id 号
我是Python新手,但正在尝试构建一个网络抓取工具。 我已经到了这样的地步 打印(汤.td.a) 结果是 一些德克萨斯人...
我正在尝试从 HTML 文件的本地文件夹中获取几个变量,但在循环进行到一半时出现异常。例外是 AttributeError: 'NoneType' 对象没有
我正在尝试从网页中抓取图片。使用JS渲染,源码中的图片链接不完整。这是图片的来源: <question vote="1"> <p>我正在尝试从网页中抓取图片。使用JS渲染,源码中的图片链接不完整。这是图片的来源:</p> <pre><code><script language="javascript" type="text/javascript"> </script> <div id="ImagesSection" class="ImagesSection"> <div id='HybridImageViewPrimaryImageDiv'> <a href='/ItemImages/000450/18190933_1_lg.jpeg' class="MagicZoom" data-options=" zoomMode:off; cssClass: dark-bg; zoomOn: click" title='Multi-Faced Doll By Cark Bergner.' id="xxxyyyzzz" ><img id='fullimage' src='/ItemImages/000450/18190933_1_med.jpeg' alt='Multi-Faced Doll By Cark Bergner.' /></a> </div> <div style="margin-top:15px;width:300px;"> <button class="cfg-btn" onclick="MagicZoom.prev('xxxyyyzzz');return false;">Prev</button> <button class="cfg-btn" onclick="MagicZoom.next('xxxyyyzzz') ;return false;">Next</button> </div><div style="margin-top:15px;" width="350px" > <a data-zoom-id="xxxyyyzzz" href="/ItemImages/000450/18190933_1_lg.jpeg" data-image="/ItemImages/000450/18190933_1_med.jpeg" > <img src="/ItemImages/000450/18190933_1_sm.jpeg" height="60px" /> </a> <a data-zoom-id="xxxyyyzzz" href="/ItemImages/000450/18190933_2_lg.jpeg" data-image="/ItemImages/000450/18190933_2_med.jpeg" > <img src="/ItemImages/000450/18190933_2_sm.jpeg" height="60px" /> </a> <a data-zoom-id="xxxyyyzzz" href="/ItemImages/000450/18190933_3_lg.jpeg" data-image="/ItemImages/000450/18190933_3_med.jpeg" > <img src="/ItemImages/000450/18190933_3_sm.jpeg" height="60px" /> </a> <a data-zoom-id="xxxyyyzzz" href="/ItemImages/000450/18190933_4_lg.jpeg" data-image="/ItemImages/000450/18190933_4_med.jpeg" > <img src="/ItemImages/000450/18190933_4_sm.jpeg" height="60px" /> </a> <a data-zoom-id="xxxyyyzzz" href="/ItemImages/000450/18190933_5_lg.jpeg" data-image="/ItemImages/000450/18190933_5_med.jpeg" > <img src="/ItemImages/000450/18190933_5_sm.jpeg" height="60px" /> </a> </div> </div> </code></pre> <p>我想提取的是以下图像:</p> <pre><code>/ItemImages/000450/18190933_1_sm.jpeg /ItemImages/000450/18190933_2_sm.jpeg /ItemImages/000450/18190933_3_sm.jpeg /ItemImages/000450/18190933_4_sm.jpeg /ItemImages/000450/18190933_5_sm.jpeg </code></pre> <p>这是我的代码:</p> <pre><code>import os import shutil import time import requests from bs4 import BeautifulSoup as bSoup from selenium import webdriver url = "https://auctions.morphyauctions.com/French_Fashion_Doll_with_Unusual_Body_-LOT450029.aspx" driver = webdriver.Chrome(executable_path="/mypath/") driver.get(url) iterations = 0 while iterations <10: html = driver.execute_script("return document.documentElement.outerHTML") sel_soup = bSoup(html, 'html.parser') print (sel_soup.findAll('img')) images = [] for i in sel_soup.findAll('img'): src = i['src'] images.append(src) print(images) current_path = os.getcwd() for img in images: try: file_name = os.path.basename(img) img_r = requests.get(img, stream=True) new_path = os.path.join(current_path, 'images', file_name) with open(new_path, 'wb') as output_file: shutil.copyfilobj(img_r.raw, output_file) del img_r except: pass iterations +=1 time.sleep(5) </code></pre> <p>运行此代码的结果是没有保存图像。任何帮助将不胜感激。</p> </question> <answer tick="false" vote="0"> <p>图像的 html 不是由 Javascript 渲染的,所以你不需要 selenium。使用 beautifulsoup 和 <pre><code>re.compile</code></pre> 来匹配以 <pre><code>href</code></pre> 开头的 <pre><code>a</code></pre> 元素中的 <pre><code>/ItemImages/</code></pre>。</p> <p>注意它使用相对 URL,您需要将域附加到图像 URL。</p> <pre><code>base_url = 'https://auctions.morphyauctions.com' url = base_url + "/French_Fashion_Doll_with_Unusual_Body_-LOT450029.aspx" html = requests.get(url).text sel_soup = BeautifulSoup(html, 'html.parser') images = [] for a in sel_soup.findAll('a', href=re.compile(r'^/ItemImages/')): ahref = base_url + a['href'] # wee need to append the domain here images.append(ahref) print(images) current_path = os.getcwd() for img in images: try: file_name = os.path.basename(img) img_r = requests.get(img) new_path = os.path.join(current_path, 'images', file_name) with open(new_path, 'wb') as output_file: output_file.write(img_r.content) except: print(ex) </code></pre> </answer> </body></html>
在 python3 中使用 BeautifulSoup 提取 html 中的元素时出现问题<script>
我想从下面的 Div 中抓取产品信息,但是当我美化 HTML 时,我无法在 HTML 中找到主 DIV。 <div class="c2p6A5" data-qa-locator="product-item" data-tracking="product-card" 我尝试获取的元素位于以下脚本中。我需要知道如何从下面的脚本中提取数据: <script type="application/ld+json"></script> 我的代码如下: import requests from bs4 import BeautifulSoup url = "https://www.daraz.pk/catalog/?q=dell&_keyori=ss&from=input&spm=a2a0e.searchlist.search.go.57446b5079XMO8" page = requests.get(url) print(page.status_code) print(page.text) soup = BeautifulSoup(page.text, 'lxml') print(soup.prettify()) 只需使用 .find() 或 find_all() 当我这样做时,我看到它实际上是 json 格式,因此可以读取该元素并以这种方式存储所有数据。 import requests from bs4 import BeautifulSoup import json import re url = "https://www.daraz.pk/catalog/?q=dell&_keyori=ss&from=input&spm=a2a0e.searchlist.search.go.57446b5079XMO8" page = requests.get(url) print(page.status_code) print(page.text) soup = BeautifulSoup(page.text, 'html.parser') print(soup.prettify()) alpha = soup.find_all('script',{'type':'application/ld+json'}) jsonObj = json.loads(alpha[1].text) for item in jsonObj['itemListElement']: name = item['name'] price = item['offers']['price'] currency = item['offers']['priceCurrency'] availability = item['offers']['availability'].split('/')[-1] availability = [s for s in re.split("([A-Z][^A-Z]*)", availability) if s] availability = ' '.join(availability) url = item['url'] print('Availability: %s Price: %0.2f %s Name: %s' %(availability,float(price), currency,name)) 输出: Availability: In Stock Price: 82199.00 Rs. Name: DELL INSPIRON 15 5570 - 15.6"HD - CI5 - 8THGEN - 4GB - 1TB HDD - AMD RADEON 530 2GB GDDR5. Availability: In Stock Price: 94599.00 Rs. Name: DELL INSPIRON 15 3576 - 15.6"HD - CI7 - 8THGEN - 4GB - 1TB HRD - AMD Radeon 520 with 2GB GDDR5. Availability: In Stock Price: 106399.00 Rs. Name: DELL INSPIRON 15 5570 - 15.6"HD - CI7 - 8THGEN - 8GB - 2TB HRD - AMD RADEON 530 2GB GDDR5. Availability: In Stock Price: 17000.00 Rs. Name: Dell Latitude E6420 14-inch Notebook 2.50 GHz Intel Core i5 4GB 320GB Laptop Availability: In Stock Price: 20999.00 Rs. Name: Dell Core i5 6410 8GB Ram Wi-Fi Windows 10 Installed ( Refurb ) Availability: In Stock Price: 18500.00 Rs. Name: Core i-5 Laptop Dell 4GB Ram 15.6 " Display Windows 10 DVD+Rw ( Refurb ) Availability: In Stock Price: 8500.00 Rs. Name: Laptop Dell D620 Core 2 Duo 80_2Gb (Used) ... 编辑:查看 2 个 json 结构的差异: jsonObj_0 = json.loads(alpha[0].text) jsonObj_1 = json.loads(alpha[1].text) print(json.dumps(jsonObj_0, indent=4, sort_keys=True)) print(json.dumps(jsonObj_1, indent=4, sort_keys=True))
请帮忙,我正在尝试获取骨灰盒的价值。从 333 开始 从这些行(出于安全原因我无法提供链接) 请帮忙,我正在尝试获取骨灰盒的价值。从333开始 来自这些行(出于安全原因我无法提供链接) <body> <div class="receipt-container"> <div class="header"> <div class="three-column"> <div class="single-colum"> <div class="logo-holder"> <img src="/images/logo.png" alt="Logo"> </div> <div class="tans-info"> <div class="barcode-holder"> <span id="CoverPage2_lblBarCode" class="Barcode" style="font-family: 'Free 3 of 9';">*MB270111404AE*</span> </div> <div class="trans-details"> <span class="tans-number">27011140</span> <span class="trans-amount"><strong> رقم الإيصال:</strong> 333297706544052311<br/> <strong> URN :</strong> 333297706544052311<strong> القيمة:</strong> 1284</span> </div> </div> </div> <div class="single-colum"> <div class="trans-entry"> <span class="entry-title"> Establishment Name / اسم المنشأة </span> <span class="entry-detail"> <div class="long-text"> DAYLIGHT </div> <div class="long-text dir-right"> مطعم ديلايت ش.ذ.م.م </div> </span> </div> <div class="trans-entry"> <span class="entry-title"> Type of Transaction / نوع المعاملة </span> <span class="entry-detail"> <div class="long-text"> Submit Renew </div> <div class="long-text dir-right"> Labour Card Application </span> </div> </div> </div> </body> </html> 我已经使用 beautifulsoup4 在 python 中完成了这行代码 导入请求 从 bs4 导入 BeautifulSoup r = requests.get(url) soup = BeautifulSoup(r.text,"html.parser") desc = soup.find('div', class_="single-colum").find_all('span') 对于描述中的 uname: urnum = uname.find_all('strong') s = urnum print(s[1]) 输出: 瓮: 我想要得到的是这个 输出: 333297706544052311 我也想得到文字 提交续订 劳工卡申请 您可以使用通过文本查找方法以及交易类型。为了得到想要的结果。 transaction_type = soup.find('span', text='Type of Transaction / نوع المعاملة').find_next('div', class_='long-text').text.strip() transaction_detail = soup.find('span', text='Type of Transaction / نوع المعاملة').find_next('div', class_='long-text dir-right').text.strip() 按文本查找是废弃此类项目的关键。如果问题仍然存在,请分享更多详细错误日志。
我需要做一些房地产市场研究,为此需要新房的价格和其他价值。 所以我的想法是访问我获取信息的网站。 转到主-S...
使用 Beautfiul Soup 提取当前出价金额 - 动态更新值
这是我第一次介绍Python 和BeautifulSoup。我正在尝试从热门拍卖网站 (RealInsight) 上列出的特定房产中获取当前出价金额,但我无法...
基于 Thesaurus.com 的查询术语进行网页抓取 [已关闭]
当用户输入任何单词时,我试图从 www.thesaurus.com 中抓取所有同义词(见图)。 我已经成功地获取了诸如“名词”和“含义”之类的信息,但是当涉及到...