คำถามติดแท็ก web-scraping

การขูดเว็บเป็นกระบวนการดึงข้อมูลเฉพาะจากเว็บไซต์ที่ไม่ได้ให้ API หรือวิธีการอื่น ๆ ในการดึงข้อมูลอัตโนมัติ คำถามเกี่ยวกับ "วิธีเริ่มต้นด้วยการขูด" (เช่นด้วย Excel VBA) ควร * ค้นคว้าอย่างละเอียด * เนื่องจากมีตัวอย่างโค้ดการทำงานจำนวนมาก วิธีการขูดเว็บรวมถึงแอปพลิเคชันของบุคคลที่สามการพัฒนาซอฟต์แวร์แบบกำหนดเองหรือแม้แต่การรวบรวมข้อมูลด้วยตนเองด้วยวิธีที่เป็นมาตรฐาน

30
ตัวเลือกสำหรับการขูด HTML หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังคิดว่าจะลองBeautiful Soupซึ่งเป็นแพ็คเกจ Python สำหรับการขูด HTML มีแพ็คเกจการขูด HTML อื่น ๆ ที่ฉันควรจะดูหรือไม่ Python ไม่ใช่ข้อกำหนดฉันสนใจที่จะฟังเกี่ยวกับภาษาอื่นเช่นกัน เรื่องราวที่ผ่านมา: หลาม ซุปที่สวยงาม lxml HTQL Scrapy เปลี่ยนไปใช้เครื่องจักร ทับทิม Nokogiri hpricot เปลี่ยนไปใช้เครื่องจักร scrAPI scRUBYt! Wombat Watir .สุทธิ ชุดความคล่องตัว Html WatiN Perl WWW :: ใช้เครื่องจักร เว็บ Scraper ชวา แท็กซุป HtmlUnit เว็บเก็บเกี่ยว jARVEST jsoup …

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' ฉันจะกำจัดข้อผิดพลาดนี้ได้อย่างไร

3
เบราว์เซอร์ที่ไม่มีหัวและการขูด - โซลูชัน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังพยายามใส่รายการโซลูชันที่เป็นไปได้สำหรับชุดการทดสอบอัตโนมัติของเบราว์เซอร์และแพลตฟอร์มเบราว์เซอร์ที่ไม่มีหัวที่สามารถคัดลอกได้ การทดสอบ / การเรียกดูเบราว์เซอร์: Selenium - ธงหลายภาษาในการทำงานอัตโนมัติของเบราว์เซอร์การเชื่อมโยงสำหรับ Python, Ruby, JavaScript, C #, Haskell และอื่น ๆ , IDE สำหรับ Firefox (เป็นส่วนเสริม) สำหรับการทดสอบที่รวดเร็วขึ้น สามารถทำหน้าที่เป็นเซิร์ฟเวอร์และมีคุณสมบัติมากมาย JAVASCRIPT PhantomJS - JavaScriptทดสอบหัวขาดกับการจับภาพหน้าจอและระบบอัตโนมัติที่ใช้Webkit เป็นเวอร์ชั่น 1.8 ของ WebDriver API ของ Selenium ถูกนำมาใช้ดังนั้นคุณสามารถใช้การผูก WebDriver ใด ๆ และการทดสอบจะเข้ากันได้กับ Selenium SlimerJS - …

6
ฉันจะอายุ Google แคชของ URL หรือหน้าเว็บใด ๆ ได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ในโครงการของฉันฉันต้องเพิ่มอายุแคชของ Google เป็นข้อมูลสำคัญ ฉันพยายามค้นหาแหล่งที่มาสำหรับอายุแคชของ Google นั่นคือจำนวนวันนับตั้งแต่ Google จัดทำดัชนีหน้าเว็บที่แสดงครั้งล่าสุดอีกครั้ง ฉันจะอายุ Google cache ได้ที่ไหน

3
HTML Parser ใดที่ดีที่สุด [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันโค้ดตัวแยกวิเคราะห์จำนวนมาก จนถึงตอนนี้ฉันใช้ HtmlUnit เบราว์เซอร์ที่ไม่มีส่วนหัวสำหรับการแยกวิเคราะห์และการทำงานอัตโนมัติของเบราว์เซอร์ ตอนนี้ฉันต้องการแยกงานทั้งสองออก เนื่องจาก 80% ของงานของฉันเกี่ยวข้องกับการแยกวิเคราะห์ฉันต้องการใช้ตัวแยกวิเคราะห์ HTML แบบใช้แสงเนื่องจากใช้เวลานานใน HtmlUnit ในการโหลดหน้าเว็บครั้งแรกจากนั้นรับแหล่งที่มาและแยกวิเคราะห์ ฉันอยากรู้ว่าตัวแยกวิเคราะห์ HTML ตัวใดดีที่สุด ตัวแยกวิเคราะห์จะดีกว่าถ้าอยู่ใกล้กับตัวแยกวิเคราะห์ HtmlUnit แก้ไข: โดยที่ดีที่สุดฉันต้องการคุณสมบัติอย่างน้อยต่อไปนี้: ความเร็ว ความง่ายดายในการค้นหา HtmlElement ใด ๆ ด้วย "id" หรือ "name" หรือ "tag type" มันคงจะโอเคสำหรับฉันถ้ามันไม่ทำความสะอาดโค้ด HTML ที่สกปรก ฉันไม่จำเป็นต้องล้างซอร์ส HTML ใด ๆ ฉันต้องการวิธีที่ง่ายที่สุดในการเคลื่อนย้ายข้าม HtmlElements และเก็บเกี่ยวข้อมูลจากพวกเขา

13
วิธีการเลือกค่าเมนูแบบหล่นลงด้วย Selenium โดยใช้ Python?
ฉันจำเป็นต้องเลือกองค์ประกอบจากหนึ่งหล่นลงเมนู ตัวอย่างเช่น: <select id="fruits01" class="select" name="fruits"> <option value="0">Choose your fruits:</option> <option value="1">Banana</option> <option value="2">Mango</option> </select> 1)ก่อนอื่นฉันต้องคลิกมัน ฉันทำนี่: inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click() 2)Mangoหลังจากนั้นผมต้องเลือกองค์ประกอบที่ดีให้พูด ฉันพยายามทำด้วยinputElementFruits.send_keys(...)แต่ไม่ได้ผล

14
หน้าจาวาสคริปต์การขูดเว็บด้วย Python
ฉันพยายามที่จะพัฒนามีดโกนเว็บอย่างง่าย ฉันต้องการแยกข้อความโดยไม่มีรหัส HTML ในความเป็นจริงฉันบรรลุเป้าหมายนี้ แต่ฉันเห็นว่าในบางหน้าเว็บที่โหลด JavaScript ฉันไม่ได้รับผลลัพธ์ที่ดี ตัวอย่างเช่นหากรหัส JavaScript บางตัวเพิ่มข้อความฉันไม่เห็นเพราะเมื่อฉันโทร response = urllib2.urlopen(request) ฉันได้รับข้อความต้นฉบับโดยไม่มีข้อความเพิ่ม (เพราะมีการใช้งาน JavaScript ในไคลเอนต์) ดังนั้นฉันกำลังมองหาแนวคิดเพื่อแก้ไขปัญหานี้

4
การคัดลอกตาราง html ลงในเฟรมข้อมูล R โดยใช้แพ็คเกจ XML
ฉันจะขูดตาราง html โดยใช้แพ็คเกจ XML ได้อย่างไร ใช้ตัวอย่างเช่นหน้าวิกิพีเดียนี้ในทีมฟุตบอลบราซิล ฉันต้องการอ่านใน R และรับ "รายการการแข่งขันทั้งหมดของบราซิลที่ได้เล่นกับ FIFA รู้จักทีม" ตารางเป็น data.frame ฉันจะทำสิ่งนี้ได้อย่างไร
153 html  r  xml  parsing  web-scraping 

13
จะบันทึกภาพในเครื่องได้อย่างไรโดยใช้ Python ซึ่งมีที่อยู่ URL ที่ฉันรู้จักอยู่แล้ว
ฉันรู้ URL ของภาพบนอินเทอร์เน็ต เช่นhttp://www.digimouth.com/news/media/2011/09/google-logo.jpgซึ่งมีโลโก้ของ Google ตอนนี้ฉันจะดาวน์โหลดรูปภาพนี้โดยใช้ Python ได้อย่างไรโดยไม่ต้องเปิด URL ในเบราว์เซอร์และบันทึกไฟล์ด้วยตนเอง


4
จะใช้คำขอ Python เพื่อปลอมการเยี่ยมชมเบราว์เซอร์ได้อย่างไร
ฉันต้องการรับเนื้อหาจากเว็บไซต์ด้านล่าง หากฉันใช้เบราว์เซอร์เช่น Firefox หรือ Chrome ฉันจะได้รับหน้าเว็บไซต์จริงที่ฉันต้องการ แต่ถ้าฉันใช้แพคเกจคำขอ Python (หรือwgetคำสั่ง) เพื่อรับมันจะส่งคืนหน้า HTML ที่แตกต่างกันโดยสิ้นเชิง ฉันคิดว่าผู้พัฒนาเว็บไซต์ได้ทำการบล็อกบางส่วนสำหรับสิ่งนี้ดังนั้นคำถามคือ: ฉันจะปลอมการเยี่ยมชมเบราว์เซอร์โดยใช้คำขอ python หรือคำสั่ง wget ได้อย่างไร http://www.ichangtou.com/#company:data_000008.html

7
Puppeteer: ผ่านตัวแปรใน. ประเมิน ()
ฉันกำลังพยายามส่งผ่านตัวแปรไปยังpage.evaluate()ฟังก์ชันในPuppeteerแต่เมื่อฉันใช้ตัวอย่างที่เรียบง่ายต่อไปนี้ตัวแปรevalVarจะไม่ได้กำหนดไว้ ฉันยังใหม่กับ Puppeteer และไม่สามารถหาตัวอย่างที่จะสร้างได้ดังนั้นฉันจึงต้องการความช่วยเหลือในการส่งผ่านตัวแปรนั้นไปยังpage.evaluate()ฟังก์ชันเพื่อที่ฉันจะได้ใช้มันภายใน const puppeteer = require('puppeteer'); (async() => { const browser = await puppeteer.launch({headless: false}); const page = await browser.newPage(); const evalVar = 'WHUT??'; try { await page.goto('https://www.google.com.au'); await page.waitForSelector('#fbar'); const links = await page.evaluate((evalVar) => { console.log('evalVar:', evalVar); // appears undefined const urls = []; hrefs = …

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 …

2
วิธีใดดีที่สุดในการดึงข้อมูลจากเว็บไซต์ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการแยกเนื้อหาจากเว็บไซต์ แต่แอปพลิเคชันไม่มีอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันหรือกลไกอื่นในการเข้าถึงข้อมูลนั้นโดยใช้โปรแกรม ฉันพบเครื่องมือของบุคคลที่สามที่มีประโยชน์ที่เรียกว่าImport.ioซึ่งมีฟังก์ชันคลิกแล้วไปสำหรับการขูดหน้าเว็บและสร้างชุดข้อมูลสิ่งเดียวคือฉันต้องการเก็บข้อมูลไว้ในเครื่องและฉันไม่ต้องการสมัครแผนการสมัครสมาชิกใด ๆ . บริษัท นี้ใช้เทคนิคอะไรในการคัดลอกหน้าเว็บและสร้างชุดข้อมูล ฉันพบกรอบการขูดเว็บpjscrape & Scrapyพวกเขาสามารถให้คุณสมบัติดังกล่าวได้

8
ฉันจะขูดเร็วขึ้นได้อย่างไร
การทำงานที่นี่คือการขูด API ที่เว็บไซต์ที่เริ่มต้นจากการhttps://xxx.xxx.xxx/xxx/1.jsonไปhttps://xxx.xxx.xxx/xxx/1417749.jsonและเขียนมันตรงกับ MongoDB เพื่อที่ฉันมีรหัสต่อไปนี้: client = pymongo.MongoClient("mongodb://127.0.0.1:27017") db = client["thread1"] com = db["threadcol"] start_time = time.time() write_log = open("logging.log", "a") min = 1 max = 1417749 for n in range(min, max): response = requests.get("https:/xx.xxx.xxx/{}.json".format(str(n))) if response.status_code == 200: parsed = json.loads(response.text) inserted = com.insert_one(parsed) write_log.write(str(n) + "\t" + str(inserted) …

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