我试图撰写关于Markdown语法的文章,并写下它,我使用Markdown。
所以,我的文档看起来像这样:
Example of markdown code:
```
foo
```
fenced code block (fail)
```
bar
```
lalala...
这打破了解析器。屏幕截图来自Commonmark dingus,但也在我尝试的其他解析器中呈现,即Showdown和MultiMarkdown。
(也许这些问题在非javascript解析器中得到修复,比如Kramdown?我没有经过测试)
如何解决?
答案 0 :(得分:2)
即使我在文档中找不到它,也可以增加commonmark.js dingus和 GitHub Flavored Markdown 上的反引号数量。请注意,它可能不适用于其他解析器(如Showdown)。但是,有些解析器根本不支持 fanced code 。假设这对您有用,您的示例可以像这样修复:
import requests
from bs4 import BeautifulSoup
# Setting user agent to a real browser instead of requests
headers = requests.utils.default_headers()
headers.update(
{
'User-Agent': 'Mozilla/5.0',
}
)
# create a session and login
s = requests.Session()
login_page = s.get('https://www.economist.com/user/login', headers=headers)
login = BeautifulSoup(login_page.text, 'lxml')
form = login.select_one("form > div > input")
payload = {
'name' : '////////////',
'pass' : '////////',
'form_build_id' : form['value'],
'form_id' : 'user_login',
'securelogin_original_baseurl' : 'https://www.economist.com',
'op' : 'Log in'
}
response = s.post("https://www.economist.com/user/login?destination=%2F",
data=payload, headers=headers)
# check homepage banner to see if login or logout link is there
url = "https://www.economist.com/"
r = s.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'lxml')
banner = soup.select("div > div > span > a")
for table_row in banner:
print(table_row['href'])
另一种可能性是不使用隔离代码。你可以写
Example of markdown code:
`````
foo
```
fenced code block (fail)
```
bar
`````
lalala...