ورود

View Full Version : دسترسی به یک لینک تک <a>



goodarziasl
جمعه 29 دی 1396, 23:14 عصر
سلام
دوستان برنامه من قراره بره از داخل سایت لینک را برداشت کنه کدها htmبه صورت زیره برنامه من کل تگ های div را توی متغیر ذخیره میکنه ولی من نمیتونم چطور پیمایش کنم تا به لینک ها و متن تک p برسم


<div id="id1">
<div id="id2">
<div id="id3">
<a herf="google.com">
google</a>
<p>جستجو</p>
</div></div></div>
<div id="id1">
<div id="id2">
<div id="id3">
<a herf="yahoo.com">
yahoo</a>
<p>ایمیل</p>
</div></div></div>

esafb52
پنج شنبه 05 بهمن 1396, 11:13 صبح
سلام
دوستان برنامه من قراره بره از داخل سایت لینک را برداشت کنه کدها htmبه صورت زیره برنامه من کل تگ های div را توی متغیر ذخیره میکنه ولی من نمیتونم چطور پیمایش کنم تا به لینک ها و متن تک p برسم


<div id="id1">
<div id="id2">
<div id="id3">
<a herf="google.com">
google</a>
<p>جستجو</p>
</div></div></div>
<div id="id1">
<div id="id2">
<div id="id3">
<a herf="yahoo.com">
yahoo</a>
<p>ایمیل</p>
</div></div></div>

با سلام
این یه تکه کد هست که خودم بخشی از سایت هایی رو که میخونم استفاده میکنم فقط تگ ها رو هرچی خواستی قرار بده البته اگر چیزی خاصی مد نظرت نیست باید شرط ها رو از کد حذف کنی


import requests
import bs4
import io
import os
import datetime




print("start grab new news!!! ")
date_today=datetime.date.today()
file_path='e:\out_news_file.txt'
myfile=io.open(file_path,"a",encoding="utf-8")
myfile.write("--------------------- start news "+ str(date_today) + " -------------------\n\n\n")


try:






# appratech
url="http://appratech.net/"
r=requests.get(url)
soup=bs4.BeautifulSoup(r.content, 'html.parser')
myfile.write("----------*** "+ soup.title.string +" ***----------\n\n\n")
link=soup.find_all("h2")
for li in link :
if len(li.text)>50:
myfile.write(li.text +'\n')
myfile.write("\n\n\n")




# zoomit
url="https://www.zoomit.ir/"
r=requests.get(url)
soup=bs4.BeautifulSoup(r.content, 'html.parser')
myfile.write("----------*** "+ soup.title.string +" ***----------\n\n\n")
link=soup.find_all("h3")
counter_to_skip_item=0
for li in link :
counter_to_skip_item+=1
if counter_to_skip_item<7 or counter_to_skip_item> 27:
continue
myfile.write(li.text +'\n')


myfile.write("\n\n\n")




# digiato
url="http://www.digiato.com/"
r=requests.get(url)
link= soup=bs4.BeautifulSoup(r.content, 'html.parser')
myfile.write("----------*** "+ soup.title.string +" ***----------\n\n\n")
links=link.find_all("h1")
for li in links :
if len(li.text)>20:
myfile.write(li.text +"\n")



except :
print("error" )
myfile.close
myfile.write("--------------------- end news -------------------\n\n\n")
myfile.write("--------------------- end news -------------------\n\n\n")
print("end news")
os.startfile(file_path)