نوشته شده توسط
goodarziasl
سلام
دوستان برنامه من قراره بره از داخل سایت لینک را برداشت کنه کدها htmبه صورت زیره برنامه من کل تگ های div را توی متغیر ذخیره میکنه ولی من نمیتونم چطور پیمایش کنم تا به لینک ها و متن تک p برسم
کد HTML:
<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)