@@ -1614,29 +1614,18 @@ <h3 id="retention">Retention</h3>
1614
1614
< li > < strong > < code class ="python hljs "> < span class ="hljs-string "> '<str>'</ span > </ code > - Max age as a string: < code class ="python hljs "> < span class ="hljs-string "> '1 week, 3 days'</ span > </ code > , < code class ="python hljs "> < span class ="hljs-string "> '2 months'</ span > </ code > , …</ strong > </ li >
1615
1615
</ ul >
1616
1616
< h2 id ="scraping "> < a href ="#scraping " name ="scraping "> #</ a > Scraping</ h2 >
1617
+ < h4 id ="scrapesandprintspythonsurlandversionnumberfromwikipedia "> Scrapes and prints Python's URL and version number from Wikipedia:</ h4 >
1617
1618
< pre > < code class ="python language-python hljs "> < span class ="hljs-comment "> # $ pip3 install requests beautifulsoup4</ span >
1618
- < span class ="hljs-meta "> >>> </ span > < span class ="hljs-keyword "> import</ span > requests
1619
- < span class ="hljs-meta "> >>> </ span > < span class ="hljs-keyword "> from</ span > bs4 < span class ="hljs-keyword "> import</ span > BeautifulSoup
1620
- < span class ="hljs-meta "> >>> </ span > url = < span class ="hljs-string "> 'https://en.wikipedia.org/wiki/Python_(programming_language)'</ span >
1621
- < span class ="hljs-meta "> >>> </ span > page = requests.get(url)
1622
- < span class ="hljs-meta "> >>> </ span > doc = BeautifulSoup(page.text, < span class ="hljs-string "> 'html.parser'</ span > )
1623
- < span class ="hljs-meta "> >>> </ span > table = doc.find(< span class ="hljs-string "> 'table'</ span > , class_=< span class ="hljs-string "> 'infobox vevent'</ span > )
1624
- < span class ="hljs-meta "> >>> </ span > rows = table.find_all(< span class ="hljs-string "> 'tr'</ span > )
1625
- < span class ="hljs-meta "> >>> </ span > link = rows[< span class ="hljs-number "> 11</ span > ].find(< span class ="hljs-string "> 'a'</ span > )[< span class ="hljs-string "> 'href'</ span > ]
1626
- < span class ="hljs-meta "> >>> </ span > ver = rows[< span class ="hljs-number "> 6</ span > ].find(< span class ="hljs-string "> 'div'</ span > ).text.split()[< span class ="hljs-number "> 0</ span > ]
1627
- < span class ="hljs-meta "> >>> </ span > link, ver
1628
- (< span class ="hljs-string "> 'https://www.python.org/'</ span > , < span class ="hljs-string "> '3.7.2'</ span > )
1629
- </ code > </ pre >
1630
- < h3 id ="selenium "> Selenium</ h3 >
1631
- < p > < strong > Library for scraping dynamically generated web content.</ strong > </ p >
1632
- < pre > < code class ="python language-python hljs "> < span class ="hljs-comment "> # $ brew cask install chromedriver</ span >
1633
- < span class ="hljs-comment "> # $ pip3 install selenium</ span >
1634
- < span class ="hljs-meta "> >>> </ span > < span class ="hljs-keyword "> from</ span > selenium < span class ="hljs-keyword "> import</ span > webdriver
1635
- < span class ="hljs-meta "> >>> </ span > driver = webdriver.Chrome()
1636
- < span class ="hljs-meta "> >>> </ span > driver.get(url)
1637
- < span class ="hljs-meta "> >>> </ span > xpath = < span class ="hljs-string "> '//*[@id="mw-content-text"]/div/table[1]/tbody/tr[7]/td/div'</ span >
1638
- < span class ="hljs-meta "> >>> </ span > driver.find_element_by_xpath(xpath).text.split()[< span class ="hljs-number "> 0</ span > ]
1639
- < span class ="hljs-string "> '3.7.2'</ span >
1619
+ < span class ="hljs-keyword "> import</ span > requests
1620
+ < span class ="hljs-keyword "> from</ span > bs4 < span class ="hljs-keyword "> import</ span > BeautifulSoup
1621
+ url = < span class ="hljs-string "> 'https://en.wikipedia.org/wiki/Python_(programming_language)'</ span >
1622
+ page = requests.get(url)
1623
+ doc = BeautifulSoup(page.text, < span class ="hljs-string "> 'html.parser'</ span > )
1624
+ table = doc.find(< span class ="hljs-string "> 'table'</ span > , class_=< span class ="hljs-string "> 'infobox vevent'</ span > )
1625
+ rows = table.find_all(< span class ="hljs-string "> 'tr'</ span > )
1626
+ link = rows[< span class ="hljs-number "> 11</ span > ].find(< span class ="hljs-string "> 'a'</ span > )[< span class ="hljs-string "> 'href'</ span > ]
1627
+ ver = rows[< span class ="hljs-number "> 6</ span > ].find(< span class ="hljs-string "> 'div'</ span > ).text.split()[< span class ="hljs-number "> 0</ span > ]
1628
+ print(link, ver)
1640
1629
</ code > </ pre >
1641
1630
< h2 id ="web "> < a href ="#web " name ="web "> #</ a > Web</ h2 >
1642
1631
< pre > < code class ="python language-python hljs "> < span class ="hljs-comment "> # $ pip3 install bottle</ span >
@@ -1719,7 +1708,7 @@ <h4 id="generatesapngimageofacallgraphwithhighlightedbottlenecks">Generates a PN
1719
1708
time_str = datetime.now().strftime(< span class ="hljs-string "> '%Y%m%d%H%M%S'</ span > )
1720
1709
filename = < span class ="hljs-string "> f'profile-< span class ="hljs-subst "> {time_str}</ span > .png'</ span >
1721
1710
drawer = output.GraphvizOutput(output_file=filename)
1722
- < span class ="hljs-keyword "> with</ span > PyCallGraph(output= drawer):
1711
+ < span class ="hljs-keyword "> with</ span > PyCallGraph(drawer):
1723
1712
<code_to_be_profiled>
1724
1713
</ code > </ pre >
1725
1714
< h2 id ="numpy "> < a href ="#numpy " name ="numpy "> #</ a > NumPy</ h2 >
0 commit comments