คำถามติดแท็ก beautifulsoup

Beautiful Soup เป็นแพ็คเกจ Python สำหรับแยกวิเคราะห์ HTML / XML เวอร์ชันล่าสุดของแพ็คเกจนี้คือเวอร์ชัน 4 ซึ่งนำเข้าเป็น bs4

28
UnicodeEncodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถเข้ารหัสอักขระ u '\ xa0' ในตำแหน่ง 20: ลำดับไม่อยู่ในช่วง (128)
ฉันมีปัญหาในการจัดการกับอักขระ Unicode จากข้อความที่ดึงมาจากหน้าเว็บต่างๆ (ในเว็บไซต์ต่าง ๆ ) ฉันใช้ BeautifulSoup ปัญหาคือข้อผิดพลาดนั้นไม่สามารถทำซ้ำได้เสมอไป บางครั้งมันก็ทำงานร่วมกับบางหน้าและบางครั้งก็ barfs UnicodeEncodeErrorโดยขว้างปา ฉันลองทุกอย่างที่ฉันสามารถคิดได้ แต่ถึงกระนั้นฉันก็ไม่พบสิ่งใดที่ทำงานได้อย่างต่อเนื่องโดยไม่ละทิ้งข้อผิดพลาดที่เกี่ยวข้องกับ Unicode ส่วนหนึ่งของรหัสที่ทำให้เกิดปัญหาแสดงอยู่ด้านล่าง: agent_telno = agent.find('div', 'agent_contact_number') agent_telno = '' if agent_telno is None else agent_telno.contents[0] p.agent_info = str(agent_contact + ' ' + agent_telno).strip() นี่คือการติดตามสแต็กที่สร้างบนสตริง SOME เมื่อรันโค้ดย่อยด้านบน: Traceback (most recent call last): File "foobar.py", line 792, in …

16
วิธีการค้นหาองค์ประกอบตามชั้นเรียน
ฉันมีปัญหาในการแยกวิเคราะห์องค์ประกอบ HTML ด้วยแอตทริบิวต์ "class" โดยใช้ Beautifulsoup รหัสมีลักษณะเช่นนี้ soup = BeautifulSoup(sdata) mydivs = soup.findAll('div') for div in mydivs: if (div["class"] == "stylelistrow"): print div ฉันพบข้อผิดพลาดในบรรทัดเดียวกัน "หลังจาก" สคริปต์เสร็จสิ้น File "./beautifulcoding.py", line 130, in getlanguage if (div["class"] == "stylelistrow"): File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 599, in __getitem__ return self._getAttrMap()[key] KeyError: 'class' ฉันจะกำจัดข้อผิดพลาดนี้ได้อย่างไร

12
bs4.FeatureNotFound: ไม่พบ tree Builder ที่มีคุณสมบัติที่คุณต้องการ: lxml คุณต้องการติดตั้งไลบรารี parser หรือไม่?
... soup = BeautifulSoup(html, "lxml") File "/Library/Python/2.7/site-packages/bs4/__init__.py", line 152, in __init__ % ",".join(features)) bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library? ผลลัพธ์ข้างต้นบนเทอร์มินัลของฉัน ฉันใช้ Mac OS 10.7.x ฉันมีงูหลาม 2.7.1 และตามการกวดวิชานี้จะได้รับสวยซุปและ lxml ซึ่งทั้งสองประสบความสำเร็จในการติดตั้งและการทำงานกับไฟล์ทดสอบแยกต่างหากตั้งอยู่ที่นี่ ในสคริปต์ Python ที่ทำให้เกิดข้อผิดพลาดนี้ฉันได้รวมบรรทัดนี้ไว้: from pageCrawler import comparePages …

6
UnicodeEncodeError: ตัวแปลงสัญญาณ 'charmap' ไม่สามารถเข้ารหัสอักขระได้
ฉันพยายามขูดเว็บไซต์ แต่มันทำให้ฉันมีข้อผิดพลาด ฉันใช้รหัสต่อไปนี้: import urllib.request from bs4 import BeautifulSoup get = urllib.request.urlopen("https://www.website.com/") html = get.read() soup = BeautifulSoup(html) print(soup) และฉันได้รับข้อผิดพลาดต่อไปนี้: File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 70924-70950: character maps to <undefined> ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

5
TypeError: ต้องการวัตถุที่มีลักษณะเหมือนไบต์ไม่ใช่ 'str' ใน python และ CSV
TypeError: จำเป็นต้องมีวัตถุคล้ายไบต์ไม่ใช่ 'str' รับข้อผิดพลาดดังกล่าวในขณะที่การดำเนินการด้านล่างรหัสหลามเพื่อบันทึกข้อมูลตาราง HTML ในไฟล์ Csv ไม่ทราบวิธีรับ rideup กรุณาช่วยฉันด้วย import csv import requests from bs4 import BeautifulSoup url='http://www.mapsofindia.com/districts-india/' response=requests.get(url) html=response.content soup=BeautifulSoup(html,'html.parser') table=soup.find('table', attrs={'class':'tableizer-table'}) list_of_rows=[] for row in table.findAll('tr')[1:]: list_of_cells=[] for cell in row.findAll('td'): list_of_cells.append(cell.text) list_of_rows.append(list_of_cells) outfile=open('./immates.csv','wb') writer=csv.writer(outfile) writer.writerow(["SNo", "States", "Dist", "Population"]) writer.writerows(list_of_rows) บนเหนือบรรทัดสุดท้าย

11
ซุปที่สวยงามและแยก div และเนื้อหาตาม ID
soup.find("tagName", { "id" : "articlebody" }) เหตุใดจึงไม่ส่งคืน<div id="articlebody"> ... </div>แท็กและสิ่งต่าง ๆ ในระหว่างนั้น มันไม่ส่งคืนอะไรเลย และฉันก็รู้ว่ามันมีอยู่จริงเพราะฉันกำลังจ้องมองมัน soup.prettify() soup.find("div", { "id" : "articlebody" }) ยังไม่ทำงาน ( แก้ไข:ฉันพบว่า BeautifulSoup ไม่ได้แยกวิเคราะห์หน้าของฉันอย่างถูกต้องซึ่งอาจหมายถึงหน้าที่ฉันพยายามแยกวิเคราะห์ไม่ได้จัดรูปแบบที่เหมาะสมใน SGML หรืออะไรก็ตาม)


17
ImportError: ไม่มีโมดูลชื่อ bs4 (BeautifulSoup)
ฉันทำงานใน Python และใช้ Flask เมื่อฉันเรียกใช้ไฟล์ Python หลักบนคอมพิวเตอร์ของฉันมันทำงานได้อย่างสมบูรณ์ แต่เมื่อฉันเปิดใช้งาน venv และเรียกใช้ไฟล์ Flask Python ในเทอร์มินัลมันขึ้นว่าไฟล์ Python หลักของฉันมี "No Module Named bs4" ความคิดเห็นหรือคำแนะนำใด ๆ จะได้รับการชื่นชมอย่างมาก

8
ความแตกต่างระหว่าง BeautifulSoup และ Scrapy Crawler
ฉันต้องการสร้างเว็บไซต์ที่แสดงการเปรียบเทียบระหว่างราคาสินค้าของ amazon กับ e-bay ข้อใดจะทำงานได้ดีกว่าและเพราะเหตุใด ผมค่อนข้างคุ้นเคยกับBeautifulSoupแต่ไม่มากกับScrapy ตีนตะขาบ

10
BeautifulSoup คว้าข้อความหน้าเว็บที่มองเห็นได้
โดยพื้นฐานแล้วฉันต้องการใช้ BeautifulSoup เพื่อจับข้อความที่มองเห็นได้บนหน้าเว็บอย่างเคร่งครัด ตัวอย่างเช่นหน้าเว็บนี้เป็นกรณีทดสอบของฉัน และส่วนใหญ่ฉันต้องการรับข้อความเนื้อหา (บทความ) และอาจจะเป็นชื่อแท็บสองสามชื่อที่นี่และที่นั่น ฉันได้ลองใช้คำแนะนำในคำถาม SOนี้ซึ่งส่งคืน<script>แท็กและความคิดเห็น html จำนวนมากซึ่งฉันไม่ต้องการ ฉันไม่สามารถหาข้อโต้แย้งที่ต้องการสำหรับฟังก์ชันนี้findAll()เพื่อให้ได้ข้อความที่มองเห็นได้บนหน้าเว็บ ดังนั้นฉันจะค้นหาข้อความที่มองเห็นได้ทั้งหมดยกเว้นสคริปต์ความคิดเห็น css และอื่น ๆ ได้อย่างไร

17
การขูด: SSL: CERTIFICATE_VERIFY_FAILED ข้อผิดพลาดสำหรับ http://en.wikipedia.org
ฉันกำลังฝึกโค้ดจาก 'Web Scraping with Python' และมีปัญหาใบรับรองนี้อยู่เรื่อย ๆ : from urllib.request import urlopen from bs4 import BeautifulSoup import re pages = set() def getLinks(pageUrl): global pages html = urlopen("http://en.wikipedia.org"+pageUrl) bsObj = BeautifulSoup(html) for link in bsObj.findAll("a", href=re.compile("^(/wiki/)")): if 'href' in link.attrs: if link.attrs['href'] not in pages: #We have encountered a new …

6
วิธีค้นหาลูกของโหนดโดยใช้ BeautifulSoup
ฉันต้องการรับ<a>แท็กทั้งหมดที่เป็นลูกของ<li>: <div> <li class="test"> <a>link1</a> <ul> <li> <a>link2</a> </li> </ul> </li> </div> ฉันรู้วิธีค้นหาองค์ประกอบที่มีคลาสเฉพาะเช่นนี้: soup.find("li", { "class" : "test" }) แต่ฉันไม่รู้ว่าจะหาทั้งหมด<a>ที่เป็นลูกของ<li class=test>คนอื่นได้อย่างไร เช่นฉันต้องการเลือก: <a>link1</a>

7
การแยกค่าแอตทริบิวต์ด้วย beautifulsoup
ฉันกำลังพยายามดึงเนื้อหาของแอตทริบิวต์ "value" รายการเดียวในแท็ก "input" ที่เฉพาะเจาะจงบนหน้าเว็บ ฉันใช้รหัสต่อไปนี้: import urllib f = urllib.urlopen("http://58.68.130.147") s = f.read() f.close() from BeautifulSoup import BeautifulStoneSoup soup = BeautifulStoneSoup(s) inputTag = soup.findAll(attrs={"name" : "stainfo"}) output = inputTag['value'] print str(output) ฉันได้รับ TypeError: ดัชนีรายการต้องเป็นจำนวนเต็มไม่ใช่ str แม้ว่าจากเอกสาร Beautifulsoup ฉันเข้าใจว่าสตริงไม่ควรเป็นปัญหาที่นี่ ... แต่ฉันไม่มีผู้เชี่ยวชาญและฉันอาจเข้าใจผิด ข้อเสนอแนะใด ๆ ที่ชื่นชมอย่างมาก! ขอบคุณล่วงหน้า.

9
เราใช้ xpath กับ BeautifulSoup ได้ไหม
ฉันใช้ BeautifulSoup เพื่อขูด url และมีรหัสต่อไปนี้ import urllib import urllib2 from BeautifulSoup import BeautifulSoup url = "http://www.example.com/servlet/av/ResultTemplate=AVResult.html" req = urllib2.Request(url) response = urllib2.urlopen(req) the_page = response.read() soup = BeautifulSoup(the_page) soup.findAll('td',attrs={'class':'empformbody'}) ตอนนี้ในโค้ดด้านบนเราสามารถใช้findAllเพื่อรับแท็กและข้อมูลที่เกี่ยวข้องได้ แต่ฉันต้องการใช้ xpath เป็นไปได้ไหมที่จะใช้ xpath กับ BeautifulSoup? ถ้าเป็นไปได้ใครช่วยกรุณาให้รหัสตัวอย่างเพื่อที่จะเป็นประโยชน์มากขึ้น?

7
Python: BeautifulSoup - รับค่าแอตทริบิวต์ตามแอตทริบิวต์ name
ฉันต้องการพิมพ์ค่าแอตทริบิวต์ตามชื่อตัวอย่างเช่น <META NAME="City" content="Austin"> ฉันอยากทำอะไรแบบนี้ soup = BeautifulSoup(f) //f is some HTML containing the above meta tag for meta_tag in soup('meta'): if meta_tag['name'] == 'City': print meta_tag['content'] รหัสด้านบนให้ a KeyError: 'name'ฉันเชื่อว่านี่เป็นเพราะชื่อถูกใช้โดย BeatifulSoup ดังนั้นจึงไม่สามารถใช้เป็นอาร์กิวเมนต์คำหลักได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.