mirror of
https://github.com/d0zingcat/RSSHub-python.git
synced 2026-05-14 15:09:23 +00:00
init project
This commit is contained in:
25
rsshub/utils.py
Normal file
25
rsshub/utils.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from flask import Response
|
||||
import requests
|
||||
from parsel import Selector
|
||||
|
||||
DEFAULT_HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
|
||||
|
||||
|
||||
class XMLResponse(Response):
|
||||
def __init__(self, response, **kwargs):
|
||||
if 'mimetype' not in kwargs and 'contenttype' not in kwargs:
|
||||
if response.startswith('<?xml'):
|
||||
kwargs['mimetype'] = 'application/xml'
|
||||
return super().__init__(response, **kwargs)
|
||||
|
||||
|
||||
def fetch(url: str, headers: dict=DEFAULT_HEADERS, proxies: dict=None):
|
||||
try:
|
||||
res = requests.get(url, headers=headers, proxies=proxies)
|
||||
res.raise_for_status()
|
||||
except Exception as e:
|
||||
print(f'[Err] {e}')
|
||||
else:
|
||||
html = res.text
|
||||
tree = Selector(text=html)
|
||||
return tree
|
||||
Reference in New Issue
Block a user