有关特定于该语言版本3+的Python编程的问题。如果您的问题不是特定于版本,请使用更通用的[python]标记。
我正在尝试使用 python-dotenv,但我试图传递的环境变量一直显示为“无”。我的文件夹中有两个文件:.env 和 settings.py 我的 .env 中有以下内容...
我正在使用 Locust 对我的应用程序 API 进行压力测试,我需要为测试期间发送的所有 HTTPS 请求生成详细日志。具体来说,我想捕获以下详细信息...
我最近读了一篇关于 NASA 代码质量规则的文章,其中一个规则是避免递归函数(理解和调试都很复杂) 当我处理如下图表时: ...
如何使用Python API更新Stripe订阅而不累积价格对象
我正在使用 stripe API 集成来构建一个 python 应用程序,我希望能够允许用户在任何时间点从当前订阅升级他们的订阅以及新订阅
我计划在 python 3 中编写异步请求。我遇到了 2 个包 urlib 和 requests。我很困惑使用以下哪个包可以给我带来更多的性能并且...
我正在寻找绘制元组树 t = ((4,), (3, 5,), (2, 4, 6,), (1, 3, 5, 7,)) 作为下图(假设二项式树的大小可以改变)。我试图避免对非 c 的依赖...
我没有太多处理网络相关内容的经验,如果我的问题太蹩脚,请原谅。 我使用 python 脚本创建了一个可执行文件(使用 pyinstaller)。基本上是...
我正在开发一个简单的多页 Streamlit 应用程序,它允许对某些数据执行 CRUD 操作。我知道创建页面目录将允许我在我的文件夹中拥有多个页面...
我正在尝试将使用多处理和队列来检测网络上的主机的代码转换为异步 #!/usr/bin/env python3 导入异步 进口插座 导入时间 导入子流程 导入...
我正在 .md 文件中记录我正在处理的 python 库中的函数,并且当我提到它时我想链接到代码库中的函数。然而,到目前为止我能做的最好的事情是 [
假设我有两个变量: >>> a =“你好” >>> b =“世界” 我可以通过两种方式连接它们;使用+: >>> a + b “你好世界” 或者使用 f 字符串: >>>...
如果我有一个仅包含类定义的Python 文件,我应该如何命名它? 例如,如果我有这个: 类文件夹: """代表计算机文件夹。""" ... ,我应该命名吗...
如何将使用外部 csv 文件的 ttkbootstrap 应用程序代码转换为常规应用程序?
我有一个使用 pycharm 创建的应用程序。我使用 ttkbootstrap 创建应用程序,我想知道如何将其转换为常规应用程序。下面是我的项目的组织方式的图片。我
我正在用Python编写代码,该代码正在使用os.system(command)处理日志文件VXT_CDR_1_1_20180816.DAT 代码在这里 导入操作系统 命令 =“cat /home/smslog/CDRS/VXT_CDR_1_1_20180816....
@property 和 getattr() 有什么区别? [已关闭]
@property、@property.setter 和 getattr()、setattr() 有什么区别。我什么时候会使用它们?如果两者相同,在 python 3.x 中首选使用哪一个? 我是 python 新手并且...
我正在尝试从网页中抓取图片。使用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>
我编写了一个脚本,它点击一个 URL 并下载一个 zip 文件,并将其解压缩。现在我在解析解压后得到的 CSV 文件时遇到问题。 导入 csv 从请求导入获取 从 io 导入 Byt...
在 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))
为什么 print("..."),即连续三个点,打印出空白?
我想连续打印三个点(以形成省略号),但 print() 打印空白。 print("一会儿...") 一会儿... 打印(”...”) 打印(”..”) .. 打印(“......
为什么这段代码不能按预期工作? 我知道还有其他方法可以使用递归来反转列表 但我特别感兴趣的是为什么这种方法不起作用。 def 反向(nums): 如果 len(n...