פירסור HTML בעזרת BeautifulSoup

tobenary

New member
פירסור HTML בעזרת BeautifulSoup

אני לומד פייטון ואני כבר יומיים מנסה לקבל את הפרסור של האתר הבא:
http://avishami.com/%D7%A1%D7%98-%D7%A4%D7%95%D7%A8%D7%99%D7%9D-2018/

הקוד שלי ( בינתיים ) נראה כך:
קוד:
import requests
from lxml import html
from bs4 import BeautifulSoup

r  = requests.get("[URL]http://avishami.com/%D7%A1%D7%98-%D7%98%D7%A8%D7%90%D7%A0%D7%A1-2018[/URL]")
data = r.text
soup = BeautifulSoup(data, "lxml")
v = (soup.find_all('script'))
t = soup.findAll("script", { "type" : "text/javascript" })
d = soup.findAll("div", {"class" : "jp-progress"})
p = soup.find_all("div", attrs={"class"})
p2 = soup.find_all("zippy")
ואני לא מצליח לקבל את ה URL של ZIPPY. ( קישור ל MP3 )
דרך "מקור הדף" אני מקבל את התמונה הבאה "מקור הדף".

ודרך ניסוי וטעייה בפייטון, אני רואה את הקישור שאני זקוק לו איפשהו מתחבא תחת המשתנה T. ( תמונה "משתנה בפייטון" ).

לצערי אני רק מתחיל וזקוק להכוונה נוספת, איך להגיע לאחד מהשניים.
1. למשתנה ;var zippyfile="F4Ui71LR" ( או מה שיש בדף )
2. ללינק עצמו שהגיע מהדף מקור. ( דוגמא למטה )
<a href="//www2.zippyshare.com/v/a0jxRivV/file.html&quot; target="_blank"><div class="dwnbtn dwn-icon"></div></a>

רב תודות.



 

selalerer

New member
ללינק אתה יכול להגיע רק אם תריץ את ה-JavaScript

הדפדפן מריץ את ה-JavaScript וזה משנה את ה-DOM ומוסיף את הלינק.
&nbsp
ה-=zippyfile נשמע דיי קל.
&nbsp
איפה אתה נתקל בבעיה?
&nbsp
אולי יהיה לך יותר פשוט כלל לא לפרסר את הקובץ ופשוט לחפש בטקסט עם regular expression את ה-=zippyfile
 

tobenary

New member
תודה רבה, התקדמתי קצת מאז אבל כיוונת אותי לעוד משהו

רב תודות שענית לי על השאלה.
הבעייה בחיפוש עכשיו שהוא לא מוצא לי את המילה ואני חייב להמיר אותה לסטרינג.

אני יודע שאני מפספס כאן משהו בחיפוש, איך אני יכול ישירות להגיע ל
VAR ZIPPYFILE=
ומה שבא אחריו

האם אני חייב להשתמש ב REGULAR EXPRESSION , או שאני יכול ישירות לשלוף את הערך שנמצא ( אם זה בכלל ערך במקרה שלי ) אחרי הסימן שווה?

תודה על המענה.

קוד:
from bs4 import BeautifulSoup
from urllib2 import urlopen

BASE_URL = "[URL]http://avishami.com/%D7%A1%D7%98-%D7%A4%D7%95%D7%A8%D7%99%D7%9D-2018[/URL]"

def get_category_links(section_url):
    html = urlopen(section_url).read()
    soup = BeautifulSoup(html, "lxml")
    bob = soup.findAll("div", "column_attr clearfix align_center")
    i1 = (len(soup.contents))
    #print (child.contents[0])
    for child in bob:
        x = str(child)
        if 'zippyfile' in x:
            print (child)

var zippy[URL='http://www=']www=[/URL]"2";var zippyfile="a0jxRivV";var zippytext="#000000";var zippyback="#e8e8e8";var zippyplay="#ff6600";var zippywidth=800;var zippyauto=false;var zippyvol=80;var zippywave = "#000000";var zippyborder = "#cccccc";

 

tobenary

New member
אתה חושב ששאלה ברמה כזו נמוכה יכולה להשאל ב STACKOVERFLOW?

 
למעלה