import requests
import os
from bs4 import BeautifulSoup
import urllib.request
class Crawl_Channel_Japan_Proxy():
headers = {
"Connection": "keep-alive",
"Cache-Control": "max-age=0",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
"Sec-Fetch-Dest": "document",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-User": "?1",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
def fetchUrl(self, url):
response = requests.get(url, headers=self.headers)
return response
def insert_brand(self):
response = self.fetchUrl("https://www.countryflags.io")
if response.status_code == 200:
dir=os.path.abspath('.')
work_path=os.path.join(dir,'country_flag')
soup = BeautifulSoup(response.text, 'html.parser')
item = soup.find("section", id="countries")
div_list = item.find_all("div", class_="item_country")
# 圖片下載
opener=urllib.request.build_opener()
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36')]
urllib.request.install_opener(opener)
for div in div_list:
imgurl = div.find('img').get('src')
find = div.find('p', class_="mb0 bold")
country = find.string
country_all = find.nextSibling.nextSibling.string
country_all = country_all if country_all is not None else ''
print(find.nextSibling.nextSibling)
print(imgurl + ' ' + country + ' ' + country_all)
io_imgurl = 'https://www.countryflags.io' + imgurl
dest = os.path.join(work_path, country + '_' + country_all + '.png')
urllib.request.urlretrieve(io_imgurl, dest)
if __name__ == "__main__":
crawl = Crawl_Channel_Japan_Proxy()
crawl.insert_brand()