有关特定于该语言版本3+的Python编程的问题。如果您的问题不是特定于版本,请使用更通用的[python]标记。
我没有太多处理网络相关内容的经验,如果我的问题太蹩脚,请原谅。 我使用 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...
如何在python中手动创建_last_checkpoint?
我在读取增量表时遇到问题,因为它需要不存在的 _last_checkpoint 文件,我想手动创建它。
当我尝试加载 .pt 文件时,我看到以下错误, str1='数据集/ALL_feats_cgqa.pt' m = 火炬.load(str1) 错误如下, 文件“/home/Storage1/pythonCodeArea/train...
我在一个测试用例中设置了一个环境变量,但无法在同一 .robot 文件中的另一个测试用例中检索它。我怎样才能访问它?
我在第一个测试用例中设置了一个环境变量,然后尝试在同一 .robot 文件中的另一个测试用例中检索该环境变量的值,但它不起作用。我怎样才能
是否可以安装特定于python3.9的pip/pip3并保留python3.8的pip?
我使用的是 Linux Mint 20.3 Una。我的环境已经包含一个pip,由python3.8使用: $ pip --版本 pip 20.0.2 来自 /usr/lib/python3/dist-packages/pip (python 3.8) python3 链接到 python3.8 $ ...
使用Frankfurter API和Python虚拟环境时出现404错误
我正在 Visual Studio Code 中用 Python 制作货币转换器脚本,并且正在使用法兰克福 API,大约几天前它曾经工作正常,直到现在每次我尝试获取 API 时......
您将获得表示交易数据的 JSON 对象流。每笔交易都有以下字段:transaction_id、user_id、amount 和 timestamp。您需要创建一个 Apache Beam pi...