<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>furas.pl</title><link>https://blog.furas.pl/</link><description># prywatne notatki - Python, Linux, Machine Learning, etc.</description><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0200</lastBuildDate><item><title>Kivy: how to access widget's id defined in KV lang using string in Python code</title><link>https://blog.furas.pl/python-kivy-how-to-access-widget-id-defined-in-kv-lang-using-string-in-python-code-gb-gb.html</link><description>&lt;p&gt;Kivy allows to use &lt;code&gt;.ids["name"]&lt;/code&gt; instead of &lt;code&gt;.ids.name&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And this allows to use string formatting to create string with name&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ids&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;label_&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;

&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ids&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;label_&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;

&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ids&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;label_&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr&gt;
&lt;p&gt;In documentation &lt;a href="https://kivy.org/doc/stable/guide/lang.html#accessing-widgets-defined-inside-kv-lang-in-your-python-code"&gt;Accessing Widgets defined inside Kv lang in your Python code&lt;/a&gt; you …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Oct 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2022-10-24:/python-kivy-how-to-access-widget-id-defined-in-kv-lang-using-string-in-python-code-gb-gb.html</guid><category>Python/Kivy</category><category>python</category><category>kivy</category><category>kv</category></item><item><title>Tkinter: How to run function with value from Entry after pressing Button</title><link>https://blog.furas.pl/python-tkinter-how-to-run-function-with-value-from-entry-after-pressing-button-gb.html</link><description>&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;other_function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Other Function:'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_click&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Entry:'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;other_function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;entry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Entry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'OK'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_click&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;button&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 11 Apr 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2022-04-11:/python-tkinter-how-to-run-function-with-value-from-entry-after-pressing-button-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Scraping: Python tools and modules for scraping (updated)</title><link>https://blog.furas.pl/python-scraping-tools-and-modules-for-scraping-update-2022-03-28-gb.html</link><description>&lt;p&gt;Last update: 2022.03.28&lt;/p&gt;
&lt;hr&gt;
&lt;!--
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/python-turtle-kolorowy-okrag-1.png" alt="python"/&gt;
&lt;/div&gt;
--&gt;

&lt;h2&gt;Get HTML from server&lt;/h2&gt;
&lt;h3&gt;&lt;a href="https://docs.python.org/3/library/urllib.request.html"&gt;urllib.request&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;standard module, preinstalled with Python&lt;/li&gt;
&lt;li&gt;some operations need more code than &lt;code&gt;requests&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;it has &lt;code&gt;urlretrive()&lt;/code&gt; to download file &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href="https://requests.readthedocs.io/"&gt;Requests&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;popular module which makes life easier&lt;/li&gt;
&lt;li&gt;extensions and modifications&lt;ul&gt;
&lt;li&gt;&lt;a href="https://requests-html.kennethreitz.org/"&gt;requests-html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/encode/requests-async"&gt;requests-async&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/requests/requests-threads"&gt;requests-threads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ross/requests-futures"&gt;requests-futures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spyoungtech/grequests"&gt;grequests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolbelt.readthedocs.io/"&gt;requests_toolbelt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- https://stackoverflow.com/questions/2632520/what-is-the-fastest-way-to-send-100-000-http-requests-in-python --&gt;
&lt;!-- [AIOHTTP](https://aiohttp.readthedocs.io/) --&gt;
&lt;!-- [chardet](https://github.com/chardet/chardet) --&gt;

&lt;hr&gt;
&lt;h2&gt;Search data in HTML&lt;/h2&gt;
&lt;h3&gt;&lt;a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/"&gt;BeautifulSoup …&lt;/a&gt;&lt;/h3&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 28 Mar 2022 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2022-03-28:/python-scraping-tools-and-modules-for-scraping-update-2022-03-28-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category></item><item><title>Manim: Basic image animations in Manim</title><link>https://blog.furas.pl/python-manim-basic-image-animations-in-manim-gb.html</link><description>&lt;p&gt;Load image and display 3 seconds&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;manim&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Example&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Scene&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;construct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wait&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;.1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# to skip animation of first image&lt;/span&gt;

        &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ImageMobject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'lenna.png'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wait&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;'__main__'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;
    &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'manim'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'-p'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'-qh'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vm"&gt;__file__&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Example'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/pre&gt;
&lt;div class="center"&gt;
&lt;iframe width="420" height="315" src="https://www.youtube.com/embed/X6xNsXXIDDM?autoplay=1&amp;mute=1"&gt;&lt;/iframe&gt;
&lt;/div&gt;&lt;p&gt;Duplicate image and display …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 May 2021 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-05-17:/python-manim-basic-image-animations-in-manim-gb.html</guid><category>Python/Manim</category><category>python</category><category>manim</category><category>animation</category></item><item><title>Manim: How to check which version I use</title><link>https://blog.furas.pl/python-manim-how-to-check-what-version-I-use-gb.html</link><description>&lt;p&gt;There are two versions of &lt;tt class="docutils literal"&gt;manim&lt;/tt&gt;.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;version created by &lt;tt class="docutils literal"&gt;3Blue1Brown&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;version maintained by community&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also deprecated version but it is replaced by community version.&lt;/p&gt;
&lt;div class="section" id="maningl-by-3blue1brown"&gt;
&lt;h2&gt;ManinGL by 3Blue1Brown&lt;/h2&gt;
&lt;p&gt;You can install it with&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;pip install manimgl
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;and you run it in consoler using &lt;tt class="docutils literal"&gt;manimgl&lt;/tt&gt; but it doesn't display version …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 May 2021 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-05-17:/python-manim-how-to-check-what-version-I-use-gb.html</guid><category>Python/Manim</category><category>python</category><category>manim</category></item><item><title>Manim: How to run Manim code easier</title><link>https://blog.furas.pl/python-manim-how-to-run-manim-code-easier-gb.html</link><description>&lt;p&gt;In documentation you can see that you can run manim code in console&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;manim -p -ql script.py Scene1 Scene2 Scene3
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;where&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;-p        :preview after rendering
-ql       :quality low
script.py :file with manim code
Scene     :class name(s) in manim code
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To make life easier you can run it …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 May 2021 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-05-17:/python-manim-how-to-run-manim-code-easier-gb.html</guid><category>Python/Manim</category><category>python</category><category>manim</category></item><item><title>Python: Complex number - real and imaginary part</title><link>https://blog.furas.pl/python-complex-number-real-and-imaginary-part-gb.html</link><description>&lt;p&gt;Python has &lt;tt class="docutils literal"&gt;complex&lt;/tt&gt; numbers which use char &lt;tt class="docutils literal"&gt;j&lt;/tt&gt; instead of &lt;tt class="docutils literal"&gt;i&lt;/tt&gt; to define imaginary part.&lt;/p&gt;
&lt;p&gt;You can be split &lt;tt class="docutils literal"&gt;complex&lt;/tt&gt; number to real and imaginary part using &lt;tt class="docutils literal"&gt;.real&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;.imag&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;You can use &lt;tt class="docutils literal"&gt;complex()&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;1j&lt;/tt&gt; to convert parts back to &lt;tt class="docutils literal"&gt;complex&lt;/tt&gt; number.&lt;/p&gt;
&lt;p&gt;You can get conjugated number using &lt;tt class="docutils literal"&gt;.conjugate …&lt;/tt&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-19:/python-complex-number-real-and-imaginary-part-gb.html</guid><category>Python</category><category>python</category></item><item><title>Tkinter: Jak wyświetlać obrazy</title><link>https://blog.furas.pl/python-jak-wyswietlac-obrazy.html</link><description>&lt;div class="section" id="przykladowe-obrazki"&gt;
&lt;h2&gt;Przykładowe obrazki&lt;/h2&gt;
&lt;p&gt;Na początek kilka obrazków, które używam w przykładach. Mogą być ona przydatne przy testowaniu przykładów.&lt;/p&gt;
&lt;img alt="python przykładowy obrazek do wyświetlania w tkinter 1" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-1.png" /&gt;
&lt;img alt="python przykładowy obrazek do wyświetlania w tkinter 2" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-2.png" /&gt;
&lt;img alt="python przykładowy obrazek do wyświetlania w tkinter 3" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-3.png" /&gt;
&lt;/div&gt;
&lt;hr class="docutils" /&gt;
&lt;div class="section" id="wczytanie-obrazka-z-tkinter-photoimage"&gt;
&lt;h2&gt;Wczytanie obrazka z tkinter.PhotoImage()&lt;/h2&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;Tkinter&lt;/tt&gt; używa &lt;tt class="docutils literal"&gt;PhotoImage&lt;/tt&gt; do wczytania &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;GIF&lt;/tt&gt; lub &lt;tt class="docutils literal"&gt;PGM/PPM&lt;/tt&gt; ale nie potrafi on wczytać &lt;tt class="docutils literal"&gt;JPG&lt;/tt&gt; lub innego formatu.
Starsze wersje nie potrafiły wczytać nawet &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt;.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-19:/python-jak-wyswietlac-obrazy.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Python: Liczby zespolone - część rzeczywista i wyimaginowana</title><link>https://blog.furas.pl/python-liczby-zespolone-czesc-rzeczywista-i-zespolona.html</link><description>&lt;p&gt;Python ma liczby zespolone  - &lt;tt class="docutils literal"&gt;complex&lt;/tt&gt; - które używają znaku &lt;tt class="docutils literal"&gt;j&lt;/tt&gt; zamiast &lt;tt class="docutils literal"&gt;i&lt;/tt&gt; do definiowania części wyimaginowanej.&lt;/p&gt;
&lt;p&gt;Można ją rozdzielić na część rzeczywistą i wyimaginowaną używając &lt;tt class="docutils literal"&gt;.real&lt;/tt&gt; i &lt;tt class="docutils literal"&gt;.imag&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Części można ponownie zamienić na liczbę zespoloną używając &lt;tt class="docutils literal"&gt;complex()&lt;/tt&gt; lub &lt;tt class="docutils literal"&gt;1j&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Liczbę sprzeżoną można pobrać za pomocą &lt;tt class="docutils literal"&gt;.conjugate()&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;Moduł (wartość bezwględną) można pobrać …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-19:/python-liczby-zespolone-czesc-rzeczywista-i-zespolona.html</guid><category>Python</category><category>python</category></item><item><title>Tkinter: How to display image</title><link>https://blog.furas.pl/python-tkinter-how-to-display-image-gb.html</link><description>&lt;div class="section" id="example-images"&gt;
&lt;h2&gt;Example images&lt;/h2&gt;
&lt;p&gt;At start few images which I use in examples. They can be useful to test examples.&lt;/p&gt;
&lt;img alt="python: example image to display in tkinter 1" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-1.png" /&gt;
&lt;img alt="python: example image to display in tkinter 2" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-2.png" /&gt;
&lt;img alt="python: example image to display in tkinter 3" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-3.png" /&gt;
&lt;/div&gt;
&lt;hr class="docutils" /&gt;
&lt;div class="section" id="read-image-using-tkinter-photoimage"&gt;
&lt;h2&gt;Read image using tkinter.PhotoImage()&lt;/h2&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;Tkinter&lt;/tt&gt; uses &lt;tt class="docutils literal"&gt;PhotoImage&lt;/tt&gt; to read &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;GIF&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;PGM/PPM&lt;/tt&gt; but it can't read &lt;tt class="docutils literal"&gt;JPG&lt;/tt&gt; or other formats.
Older versions didn't read &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt;.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 19 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-19:/python-tkinter-how-to-display-image-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Python: Co znaczy [:,0] i [:,1] w numpy lub pandas</title><link>https://blog.furas.pl/python-co-znaczy-0-i-1-w-numpy-lub-pandas.html</link><description>&lt;p&gt;To jest notacja używana w &lt;tt class="docutils literal"&gt;Numpy&lt;/tt&gt; i &lt;tt class="docutils literal"&gt;Pandas&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Pozwala on na dostęp do elementów w tablicy 2D bez użycia pętli &lt;tt class="docutils literal"&gt;for&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;[ : , 0 ]&lt;/tt&gt; oznacza (mniej więcej) &lt;tt class="docutils literal"&gt;[ pierwszy_wiersz:ostatni_wiersz , kolumna_0 ]&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Dla dwuwymiarowej tablicy/matrycy/dataframe to daje wszystkie wartości w kolumnie 0 (we wszystkich wierszach).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;col_0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;col_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dla …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 12 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-12:/python-co-znaczy-0-i-1-w-numpy-lub-pandas.html</guid><category>Python</category><category>python</category><category>numpy</category><category>pandas</category></item><item><title>Python: What means [:,0] and [:,1] in numpy or pandas</title><link>https://blog.furas.pl/python-what-means-0-and-1-in-numpy-or-pandas-gb.html</link><description>&lt;p&gt;It is a notation used in &lt;tt class="docutils literal"&gt;Numpy&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;Pandas&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;It lets you access elements in 2D array without &lt;tt class="docutils literal"&gt;for&lt;/tt&gt;-loop.&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;[ : , 0 ]&lt;/tt&gt; means (more or less) &lt;tt class="docutils literal"&gt;[ first_row:last_row , column_0 ]&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;For 2D array/matrix/dataframe this gives all values in column 0 (from all rows).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;col_0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;col_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[:,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 12 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-12:/python-what-means-0-and-1-in-numpy-or-pandas-gb.html</guid><category>Python</category><category>python</category><category>numpy</category><category>pandas</category></item><item><title>Python: How to redirect output from print() to textarea in Brython</title><link>https://blog.furas.pl/python-brython-how-to-redirect-output-from-print-to-textarea-in-brython-gb.html</link><description>&lt;p&gt;Original &lt;tt class="docutils literal"&gt;sys.stdout&lt;/tt&gt; has method &lt;tt class="docutils literal"&gt;write()&lt;/tt&gt; and function &lt;tt class="docutils literal"&gt;print()&lt;/tt&gt; uses this &lt;tt class="docutils literal"&gt;sys.stdout.write()&lt;/tt&gt;
to send text to console.&lt;/p&gt;
&lt;p&gt;To redirect &lt;tt class="docutils literal"&gt;print()&lt;/tt&gt; to element on page or in GUI you have to create class with method &lt;tt class="docutils literal"&gt;write()&lt;/tt&gt;
which gets text and puts on page or in GUI and assign this …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 10 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-10:/python-brython-how-to-redirect-output-from-print-to-textarea-in-brython-gb.html</guid><category>Python</category><category>python</category><category>brython</category></item><item><title>Python: Jak przekierować print() do textarea w Brython</title><link>https://blog.furas.pl/python-brython-jak-przekierowac-print-do-textarea-w-brython.html</link><description>&lt;p&gt;Oryginalnie &lt;tt class="docutils literal"&gt;sys.stdout&lt;/tt&gt; posiada methodę &lt;tt class="docutils literal"&gt;write()&lt;/tt&gt; i funkcja &lt;tt class="docutils literal"&gt;print()&lt;/tt&gt; używa tego &lt;tt class="docutils literal"&gt;sys.stdout.write()&lt;/tt&gt;
do wysłania tekstu na konsolę.&lt;/p&gt;
&lt;p&gt;Aby przekierować &lt;tt class="docutils literal"&gt;print()&lt;/tt&gt; do elementu na stronie lub w GUI trzeba stworzyć klasę z metodą &lt;tt class="docutils literal"&gt;write()&lt;/tt&gt;,
która pobiera tekst i umiesza go na stronie lub w GUI, i należy przypisać tą …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 10 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-10:/python-brython-jak-przekierowac-print-do-textarea-w-brython.html</guid><category>Python</category><category>python</category><category>brython</category></item><item><title>Interesting links [2021.01.09]</title><link>https://blog.furas.pl/python-linux-interesting-links-2021-01-09-gb.html</link><description>&lt;ul&gt;
&lt;li&gt;&lt;p class="first"&gt;&lt;a class="reference external" href="http://toscrape.com/"&gt;toscrape.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Web Scraping Sandbox created by &lt;a class="reference external" href="https://scrapinghub.com/"&gt;Scrapinghub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A fictional bookstore that desperately wants to be scraped.
It's a safe place for beginners learning web scraping
and for developers validating their scraping technologies as well.&lt;/p&gt;
&lt;p&gt;Available at: &lt;a class="reference external" href="http://books.toscrape.com/"&gt;books.toscrape.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A website that lists quotes from famous people.
It has …&lt;/p&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 09 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-09:/python-linux-interesting-links-2021-01-09-gb.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Interesujące linki [2021.01.09]</title><link>https://blog.furas.pl/python-linux-interesujace-links-2021-01-09.html</link><description>&lt;ul&gt;
&lt;li&gt;&lt;p class="first"&gt;&lt;a class="reference external" href="http://toscrape.com/"&gt;toscrape.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Web Scraping Sandbox stworzony przez &lt;a class="reference external" href="https://scrapinghub.com/"&gt;Scrapinghub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fikcyjna księgarnia, która desperacko chce być zeskrapowana.
To bezpieczne miejsce dla początkujących uczących się we scrapingu,
jak również dla deweloperów sprawdzających swoje umiejętności scrapingu&lt;/p&gt;
&lt;p&gt;Dostępne na: &lt;a class="reference external" href="http://books.toscrape.com/"&gt;books.toscrape.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Strona, która wyświetla cytaty znanych ludzi.
Ma wiele odmian strony, które pokazują cytaty …&lt;/p&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 09 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-09:/python-linux-interesujace-links-2021-01-09.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Python: How to change color in Text using tags</title><link>https://blog.furas.pl/python-tkinter-how-to-change-color-in-text-using-tags-gb.html</link><description>&lt;p&gt;Widget &lt;tt class="docutils literal"&gt;Text&lt;/tt&gt; has function &lt;tt class="docutils literal"&gt;insert()&lt;/tt&gt; to insert text
and it has option &lt;tt class="docutils literal"&gt;tags&lt;/tt&gt; to assing tag (or many tags) to inserted text.
This tag can be used to change color (background, foreground) and font and other properties.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;txt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;txt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pack …&lt;/span&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 08 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-08:/python-tkinter-how-to-change-color-in-text-using-tags-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: How to open only one Toplevel window</title><link>https://blog.furas.pl/python-tkinter-how-to-open-only-one-toplevel-window-gb.html</link><description>&lt;p&gt;To have only one &lt;tt class="docutils literal"&gt;Toplevel&lt;/tt&gt; window you can &lt;tt class="docutils literal"&gt;disable&lt;/tt&gt; button which open this &lt;tt class="docutils literal"&gt;Toplevel&lt;/tt&gt; window
and &lt;tt class="docutils literal"&gt;enable&lt;/tt&gt; it when you close this &lt;tt class="docutils literal"&gt;Toplevel&lt;/tt&gt; window&lt;/p&gt;
&lt;p&gt;You can use &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;button['state']&lt;/span&gt;&lt;/tt&gt; to set it &lt;tt class="docutils literal"&gt;'disable'&lt;/tt&gt; or &lt;tt class="docutils literal"&gt;'normal'&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;You needs &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;window.protocol(&amp;quot;WM_DELETE_WINDOW&amp;quot;,&lt;/span&gt; function)&lt;/tt&gt;
to execute function when you use button &lt;tt class="docutils literal"&gt;[X]&lt;/tt&gt; to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 08 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-08:/python-tkinter-how-to-open-only-one-toplevel-window-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: jak otworzyć tylko jedno okno Toplevel</title><link>https://blog.furas.pl/python-tkinter-jak-otworzyc-tylko-jedno-okno-toplevel.html</link><description>&lt;p&gt;Aby mieć tylko jedno okno &lt;tt class="docutils literal"&gt;Toplevel&lt;/tt&gt; można &lt;tt class="docutils literal"&gt;zablokować&lt;/tt&gt; przycisk, który otwiera to okno &lt;tt class="docutils literal"&gt;Toplevel&lt;/tt&gt;
i &lt;tt class="docutils literal"&gt;odblokować&lt;/tt&gt; przycisk gdy to okno jest zamykane.&lt;/p&gt;
&lt;p&gt;Można do tego użyć &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;button['state']&lt;/span&gt;&lt;/tt&gt; i ustawiać &lt;tt class="docutils literal"&gt;'disable'&lt;/tt&gt; lub &lt;tt class="docutils literal"&gt;'normal'&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;Potrzebne też jest &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;window.protocol(&amp;quot;WM_DELETE_WINDOW&amp;quot;,&lt;/span&gt; function)&lt;/tt&gt;
do wywołania funkcji gdy zostani wciśnięty przycisk &lt;tt class="docutils literal"&gt;[X]&lt;/tt&gt; zamykający okno …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 08 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-08:/python-tkinter-jak-otworzyc-tylko-jedno-okno-toplevel.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Jak zmienić kolor w Text używając tagów</title><link>https://blog.furas.pl/python-tkinter-jak-zmienic-kolor-w-text-u%C5%BCywajac-tagow.html</link><description>&lt;p&gt;Widget &lt;tt class="docutils literal"&gt;Text&lt;/tt&gt; ma funkcję &lt;tt class="docutils literal"&gt;insert()&lt;/tt&gt; do wstawiania tekstów
i ona ma opcję &lt;tt class="docutils literal"&gt;tags&lt;/tt&gt; do przypisywania tagu (lub wiele tagów) do wstawianego tekstu.
Ten tag może być użyty do zmiany koloru (background, foreground) oraz czcionki oraz innych właściwości.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;txt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;txt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pack …&lt;/span&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 08 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-08:/python-tkinter-jak-zmienic-kolor-w-text-używajac-tagow.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Python: How to play mp3 from gTTS as bytes without saving on disk</title><link>https://blog.furas.pl/python-how-to-play-mp3-from-gtts-as-bytes-without-saving-on-disk-gb.html</link><description>&lt;p&gt;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;Google-Text-To-Speech&lt;/span&gt;&lt;/tt&gt; (shortly &lt;tt class="docutils literal"&gt;gtts&lt;/tt&gt;) converts text to speech in file MP3
and popular method to play it without saving on disk was to use &lt;tt class="docutils literal"&gt;PyGame&lt;/tt&gt;&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;gtts&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;gTTS&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;io&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BytesIO&lt;/span&gt;

&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;

&lt;span class="c1"&gt;# get audio from server&lt;/span&gt;
&lt;span class="n"&gt;tts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gTTS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# convert to file-like object&lt;/span&gt;
&lt;span class="n"&gt;fp …&lt;/span&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 07 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-07:/python-how-to-play-mp3-from-gtts-as-bytes-without-saving-on-disk-gb.html</guid><category>Python</category><category>python</category></item><item><title>Interesting links [2021.01.07]</title><link>https://blog.furas.pl/python-linux-interesting-links-2021-01-07-gb.html</link><description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://strftime.org/"&gt;strftime.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://pyformat.info/"&gt;pyformat.info&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://learnxinyminutes.com/docs/python/"&gt;Learn X in Y minutes Where X=Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/LearnProgramming/learntris"&gt;Learntris - Create Tetris with TDD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 07 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-07:/python-linux-interesting-links-2021-01-07-gb.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Interesujące linki [2021.01.07]</title><link>https://blog.furas.pl/python-linux-interesujace-links-2021-01-07.html</link><description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://strftime.org/"&gt;strftime.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://pyformat.info/"&gt;pyformat.info&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://learnxinyminutes.com/docs/python/"&gt;Learn X in Y minutes Where X=Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/LearnProgramming/learntris"&gt;Learntris - Create Tetris with TDD&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 07 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-07:/python-linux-interesujace-links-2021-01-07.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Python: Dlaczego Python nie może zaimportować modułu po instalacji z pip</title><link>https://blog.furas.pl/python-dlaczego-python-nie-moze-zaimportowac-module-po-instalacji-z-pip.html</link><description>&lt;p&gt;Czasami po instalacji&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
pip install some_module
&lt;/pre&gt;
&lt;p&gt;Python nie może odnaleźć modułu i pokazuje błąd &lt;tt class="docutils literal"&gt;ModuleNotFoundError&lt;/tt&gt;&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;some_module&lt;/span&gt;

&lt;span class="ne"&gt;ModuleNotFoundError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;No&lt;/span&gt; &lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="n"&gt;named&lt;/span&gt; &lt;span class="s1"&gt;'some_module'&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Niezbyt często powodem jest, że moduł używa innej nazwy do istalacji a innej do importu.
To może być całkowicie inna nazwa - jak instalacja &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;python-some_module&lt;/span&gt;&lt;/tt&gt; i import &lt;tt class="docutils literal"&gt;some_module&lt;/tt&gt; -
lub …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-06:/python-dlaczego-python-nie-moze-zaimportowac-module-po-instalacji-z-pip.html</guid><category>Python</category><category>python</category><category>pip</category></item><item><title>Python: How can't Python import module after installation with pip</title><link>https://blog.furas.pl/python-how-cant-python-import-module-after-installation-with-pip-gb.html</link><description>&lt;p&gt;Sometime after installation&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
pip install some_module
&lt;/pre&gt;
&lt;p&gt;Python can't find this module and shows error &lt;tt class="docutils literal"&gt;ModuleNotFoundError&lt;/tt&gt;&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;some_module&lt;/span&gt;

&lt;span class="ne"&gt;ModuleNotFoundError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;No&lt;/span&gt; &lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="n"&gt;named&lt;/span&gt; &lt;span class="s1"&gt;'some_module'&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Not so often problem is that module uses different name for installation and different for import.
It can be totally different name - like install &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;python-some_module&lt;/span&gt;&lt;/tt&gt; and import &lt;tt class="docutils literal"&gt;some_module …&lt;/tt&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-06:/python-how-cant-python-import-module-after-installation-with-pip-gb.html</guid><category>Python</category><category>python</category><category>pip</category></item><item><title>Python: How to use pynput to get phrase of few chars</title><link>https://blog.furas.pl/python-how-to-use-pynput-to-get-phrase-of-few-chars-gb.html</link><description>&lt;p&gt;Some modules have function to catch single char and assign function
but they don't have function to catch few chars which create phrase.&lt;/p&gt;
&lt;p&gt;This is example uses &lt;tt class="docutils literal"&gt;pynput&lt;/tt&gt; &lt;tt class="docutils literal"&gt;Listener&lt;/tt&gt; to catch all pressed chars and keep them in string -
and this helps to check if few last chars match some …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-06:/python-how-to-use-pynput-to-get-phrase-of-few-chars-gb.html</guid><category>Python</category><category>python</category><category>pynput</category></item><item><title>Python: Jak użyć pynput do sprawdzenie czy wciśnięto frazę z kilku znaków</title><link>https://blog.furas.pl/python-jak-uzyc-pynput-do-sprawdzenia-czy-wcisnieto-fraze-z-kilku-znakow.html</link><description>&lt;p&gt;Niektóre moduły mają funkcję do przechwycenia pojedyńczego znaku i wywołania funkcji
ale nie mają one funkcji do sprawdzenia czy wciśnieto ciąg znaków tworzących pewną frazę.&lt;/p&gt;
&lt;p&gt;Oto przykład użycia &lt;tt class="docutils literal"&gt;pynput&lt;/tt&gt; &lt;tt class="docutils literal"&gt;Listener&lt;/tt&gt; do przechwycenia wszytkich wciśniętych znaków i trzymania ich w stringu -
co pozwala sprawdzić czy kilka ostatnich znaków nie tworzą szukaną …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-06:/python-jak-uzyc-pynput-do-sprawdzenia-czy-wcisnieto-fraze-z-kilku-znakow.html</guid><category>Python</category><category>python</category><category>pynput</category></item><item><title>Interesting links [2021.01.06]</title><link>https://blog.furas.pl/python-linux-interesting-links-2021-01-06-gb.html</link><description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=lfk_T6VKhTE"&gt;Bot programmed in Python to play Sushi Go Round (YouTube)&lt;/a&gt; using &lt;a class="reference external" href="https://pyautogui.readthedocs.io/en/latest/"&gt;PyAutoGUI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-06:/python-linux-interesting-links-2021-01-06-gb.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Interesujące linki [2021.01.06]</title><link>https://blog.furas.pl/python-linux-interesujace-links-2021-01-06.html</link><description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://strftime.org/"&gt;strftime.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-06:/python-linux-interesujace-links-2021-01-06.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Linux: Jak użyć tesseract z językiem innym niż Angielski (np. Polski)</title><link>https://blog.furas.pl/linux-jak-uzyc-tesseract-z-jezykiem-innym-niz-angielski-np-polski.html</link><description>&lt;p&gt;Ta komenda pokazuje jakie języki są zainstalowane z &lt;tt class="docutils literal"&gt;tesseract&lt;/tt&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;tesseract --list-langs
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Wynik&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;List of available languages &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;:
eng
osd
pol
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Na Linux Mint/Ubuntu/Debian można użyć &lt;tt class="docutils literal"&gt;apt&lt;/tt&gt; do doinstalowania nowych języków - np. &lt;tt class="docutils literal"&gt;Polski&lt;/tt&gt; wymaga &lt;tt class="docutils literal"&gt;pol&lt;/tt&gt; na końcu komendy&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo apt-get install tesseract-ocr-pol
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dla innych języków można użyć &lt;tt class="docutils literal"&gt;apt&lt;/tt&gt; dla …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 05 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-05:/linux-jak-uzyc-tesseract-z-jezykiem-innym-niz-angielski-np-polski.html</guid><category>Linux</category><category>linux</category></item><item><title>Linux: How to use tesseract with language different than English</title><link>https://blog.furas.pl/python-how-to-use-tesseract-with-language-different-than-english-gb.html</link><description>&lt;p&gt;This command shows what languages you have installed with &lt;tt class="docutils literal"&gt;tesseract&lt;/tt&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;tesseract --list-langs
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Result&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;List of available languages &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;:
eng
osd
pol
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On Linux Mint/Ubuntu/Debian you can use &lt;tt class="docutils literal"&gt;apt&lt;/tt&gt; to install new languages - ie. &lt;tt class="docutils literal"&gt;Polish&lt;/tt&gt; needs &lt;tt class="docutils literal"&gt;pol&lt;/tt&gt; at the end&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo apt-get install tesseract-ocr-pol
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;For other languages you can …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 05 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-05:/python-how-to-use-tesseract-with-language-different-than-english-gb.html</guid><category>Linux</category><category>linux</category></item><item><title>Interesting links [2021.01.05]</title><link>https://blog.furas.pl/python-linux-interesting-links-2021-01-05-gb.html</link><description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://gamedev.stackexchange.com/questions/651/what-should-a-main-game-loop-do"&gt;What should a main game loop do?&lt;/a&gt; on &lt;a class="reference external" href="https://gamedev.stackexchange.com"&gt;GameDevelopment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 05 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-05:/python-linux-interesting-links-2021-01-05-gb.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Interesujące linki [2021.01.05]</title><link>https://blog.furas.pl/python-linux-interesujace-links-2021-01-05.html</link><description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://gamedev.stackexchange.com/questions/651/what-should-a-main-game-loop-do"&gt;What should a main game loop do?&lt;/a&gt; on &lt;a class="reference external" href="https://gamedev.stackexchange.com"&gt;GameDevelopment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 05 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-05:/python-linux-interesujace-links-2021-01-05.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Python: How to convert text with hex values and \ to normal characters</title><link>https://blog.furas.pl/python-how-to-convert-text-with-hex-values-to-normal-characters-gb.html</link><description>&lt;p&gt;Sometimes you can scrape string with double &lt;tt class="docutils literal"&gt;\\&lt;/tt&gt; and hex values&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
\\x3Cstyle\\x3E\\x0A.mainDiv\\x0A\\x7B\\x0A\\x20\\x20width\\x3A1000px\\x3B\\x0A}\\x0A\\x3C/style\\x3E
&lt;/pre&gt;
&lt;p&gt;But it should be&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
&amp;lt;style&amp;gt;
   .mainDiv
  {
  width:1000px;
  background-image:url
&amp;lt;style&amp;gt;
&lt;/pre&gt;
&lt;p&gt;It needs to encode it back with &lt;tt class="docutils literal"&gt;raw_unicode_escape` and then decode with ``unicode_escape …&lt;/tt&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 04 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-04:/python-how-to-convert-text-with-hex-values-to-normal-characters-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>codecs</category></item><item><title>Python: Jak zamienić tekst z wartosciami szestastwkoymi (hex) z \ na normalne znaki</title><link>https://blog.furas.pl/python-jak-zamienic-tekst-z-wartoscami-szesnastowymi-hex-na-normalne-znaki.html</link><description>&lt;p&gt;Czasami podczas scrapingu można otrzymać tekst z podwójnymi &lt;tt class="docutils literal"&gt;\\&lt;/tt&gt; i szesnastkowymi kodami znaków&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
\\x3Cstyle\\x3E\\x0A.mainDiv\\x0A\\x7B\\x0A\\x20\\x20width\\x3A1000px\\x3B\\x0A}\\x0A\\x3C/style\\x3E
&lt;/pre&gt;
&lt;p&gt;A to powinno wyglądać jako&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
&amp;lt;style&amp;gt;
   .mainDiv
  {
  width:1000px;
  background-image:url
&amp;lt;style&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Należy to przekonwerterować ponownie do &lt;tt class="docutils literal"&gt;bytes&lt;/tt&gt; z użyciem  &lt;tt class="docutils literal"&gt;raw_unicode_escape&lt;/tt&gt;
a …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 04 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-04:/python-jak-zamienic-tekst-z-wartoscami-szesnastowymi-hex-na-normalne-znaki.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>codecs</category></item><item><title>Scraping: How to download tgz file from eogauth.mines.edu.</title><link>https://blog.furas.pl/python-scraping-how-to-download-tgz-file-from-eogauth-mines-edu-gb.html</link><description>&lt;p&gt;It it problem from Stackoverflow.&lt;/p&gt;
&lt;p&gt;The main problem was wrong url used in &lt;tt class="docutils literal"&gt;POST&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Often &lt;tt class="docutils literal"&gt;form&lt;/tt&gt; sends data to the same url as page with form but it doesn't have to be true on all pages.&lt;/p&gt;
&lt;p&gt;Form may send data to different url which can be defined as &lt;tt class="docutils literal"&gt;action&lt;/tt&gt; in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 02 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-02:/python-scraping-how-to-download-tgz-file-from-eogauth-mines-edu-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>beautifulsoup</category></item><item><title>Scraping: Jak pobrać plik tgz ze strony eogauth.mines.edu.</title><link>https://blog.furas.pl/python-scraping-jak-pobrac-plik-tgz-ze-strony-eogauth-mines-edu.html</link><description>&lt;p&gt;Oto problem ze Stackoverflow.&lt;/p&gt;
&lt;p&gt;Głównym problemem był zły url użyty w &lt;tt class="docutils literal"&gt;POST&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Często &lt;tt class="docutils literal"&gt;form&lt;/tt&gt; wysyła dane to tego samego adresu jaki ma strona z tym formularze
ale nie musi tak być na każdej stronie.&lt;/p&gt;
&lt;p&gt;Formularz może wysyłać dane pod inny adres,
który jest zdefiniowany jako &lt;tt class="docutils literal"&gt;action&lt;/tt&gt; w HTML &lt;tt class="docutils literal"&gt;&amp;lt;form &lt;span class="pre"&gt;action …&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 02 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-02:/python-scraping-jak-pobrac-plik-tgz-ze-strony-eogauth-mines-edu.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>beautifulsoup</category></item><item><title>Python: How to use QTimer to run function many times with the same interval.</title><link>https://blog.furas.pl/python-pyqt-how-to-use-qtimer-to-run-function-many-times-with-the-same-interval-gb.html</link><description>&lt;p&gt;If you want to execute some function with delay you could use &lt;tt class="docutils literal"&gt;time.sleep()&lt;/tt&gt; but it blocks rest of code.
You could also run it in separated &lt;tt class="docutils literal"&gt;thread&lt;/tt&gt; and then it not blocks rest of code.
You can also try to use modules like &lt;tt class="docutils literal"&gt;shedule&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;shed&lt;/tt&gt; to manage tasks
or …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 01 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-01:/python-pyqt-how-to-use-qtimer-to-run-function-many-times-with-the-same-interval-gb.html</guid><category>Python/PyQt</category><category>python</category><category>pyqt</category></item><item><title>PyQt: Jak użyć QTimer aby uruchomić funkcję wiele razy w tych samych odstępach czasu.</title><link>https://blog.furas.pl/python-pyqt-jak-uzyc-qtimer-aby-uruchomic-funkcje-wiele-razy-w-tych-samych-odstepach-czasu.html</link><description>&lt;p&gt;Jeśli chcesz uruchomić jakaś funkcję z opóźnieniem to możesz wykorzystać &lt;tt class="docutils literal"&gt;time.sleep()&lt;/tt&gt; ale to blokuje resztę kodu.
Możesz też uruchomić to w osobnym wątku i wtedy już to nie blokuje reszty kodu.
Możesz też próbować jakiś używać modułów typu &lt;tt class="docutils literal"&gt;shedule&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;shed&lt;/tt&gt; to zarządzania zadaniami
lub wręcz wykorzystać zewnętrze programy jak …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 01 Jan 2021 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2021-01-01:/python-pyqt-jak-uzyc-qtimer-aby-uruchomic-funkcje-wiele-razy-w-tych-samych-odstepach-czasu.html</guid><category>Python/PyQt</category><category>python</category><category>pyqt</category></item><item><title>Programs to display pressed keys and mouse moves on screeen in Linux</title><link>https://blog.furas.pl/linux-programs-to-display-pressed-keys-and-mouse-moves-on-screen-in-linux-gb.html</link><description>&lt;p&gt;Here few programs which can be used to display pressed keys and mouse moves on screen in Linux.
It can be usefull during presentation or screen recording in video.&lt;/p&gt;
&lt;div class="section" id="screenkey"&gt;
&lt;h2&gt;&lt;a class="reference external" href="https://www.thregr.org/~wavexx/software/screenkey/"&gt;screenkey&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;home: &lt;a class="reference external" href="https://www.thregr.org/~wavexx/software/screenkey/"&gt;screenkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;repo: &lt;a class="reference external" href="https://gitlab.com/screenkey/screenkey"&gt;screenkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;only keyboard&lt;/li&gt;
&lt;li&gt;only Linux&lt;/li&gt;
&lt;li&gt;code: Python (uses module &lt;cite&gt;pygtk&lt;/cite&gt; and own code for &lt;cite&gt;xlib&lt;/cite&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Install:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
$ pip …&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 31 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-31:/linux-programs-to-display-pressed-keys-and-mouse-moves-on-screen-in-linux-gb.html</guid><category>Linux</category><category>linux</category></item><item><title>Programy do wyświetlania na ekranie w Linux wciśniętych klawiszy i przycisków myszy</title><link>https://blog.furas.pl/linux-programy-do-wyswietlania-na-ekranie-linux-wcisnietych-klawiszy-i-przyciskow-myszy.html</link><description>&lt;p&gt;Oto kilka programów, które mogą być użyte do wyświetlenia na ekranie wciśniętych klawiszy i przycisków myszy pod Linux.
Może to być przydatne podczas prezentacji lub nagrywaniu ekrany na wideo.&lt;/p&gt;
&lt;div class="section" id="screenkey"&gt;
&lt;h2&gt;&lt;a class="reference external" href="https://www.thregr.org/~wavexx/software/screenkey/"&gt;screenkey&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;www: &lt;a class="reference external" href="https://www.thregr.org/~wavexx/software/screenkey/"&gt;screenkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;repozytorium: &lt;a class="reference external" href="https://gitlab.com/screenkey/screenkey"&gt;screenkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tylko klawiatura&lt;/li&gt;
&lt;li&gt;tylko Linux&lt;/li&gt;
&lt;li&gt;kod: Python (używa modułu &lt;cite&gt;pygtk&lt;/cite&gt; oraz własnego kodu dla &lt;cite&gt;xlib&lt;/cite&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instalacja:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
$ pip …&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 31 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-31:/linux-programy-do-wyswietlania-na-ekranie-linux-wcisnietych-klawiszy-i-przyciskow-myszy.html</guid><category>Linux</category><category>linux</category></item><item><title>Python: How to find element next after (previous before) another element with BeautifulSoup.</title><link>https://blog.furas.pl/python-how-to-to-fine-element-next-after-another-element-with-beautifulsoup-gb.html</link><description>&lt;p&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/"&gt;BeautifulSoup&lt;/a&gt; has many functions to search elements - not only
&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find"&gt;find()&lt;/a&gt; and &lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all"&gt;find_all()&lt;/a&gt;
but also&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-next-and-find-next"&gt;find_next()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-next-and-find-next"&gt;find_all_next()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-next-siblings-and-find-next-sibling"&gt;find_next_sibling()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-next-siblings-and-find-next-sibling"&gt;find_next_siblings()&lt;/a&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It can also search in other direction using&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-previous-and-find-previous"&gt;find_previous()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-previous-and-find-previous"&gt;find_all_previous()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-previous-siblings-and-find-previous-sibling"&gt;find_previous_sibling()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-previous-siblings-and-find-previous-sibling"&gt;find_previous_siblings()&lt;/a&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It has also attributes (for single element)&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-element-and-previous-element"&gt;.next_element&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-element-and-previous-element"&gt;.previous_element&lt;/a&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and iterators (for many elements)&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-elements-and-previous-elements"&gt;.next_elements&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-elements-and-previous-elements"&gt;.previous_elements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;which can work different …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 31 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-31:/python-how-to-to-fine-element-next-after-another-element-with-beautifulsoup-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>beautifulsoup</category></item><item><title>Python: Jak w BeautifulSoup znaleść element występujący za (lub przed) innym elementem.</title><link>https://blog.furas.pl/python-scraping-jak-w-beautifulsoup-znalesc-element-wystepujacy-za-innym-elementem.html</link><description>&lt;p&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/"&gt;BeautifulSoup&lt;/a&gt; ma wiele funkcji do szukania elementów - nie tylko
&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find"&gt;find()&lt;/a&gt; i &lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all"&gt;find_all()&lt;/a&gt;
ale także&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-next-and-find-next"&gt;find_next()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-next-and-find-next"&gt;find_all_next()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-next-siblings-and-find-next-sibling"&gt;find_next_sibling()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-next-siblings-and-find-next-sibling"&gt;find_next_siblings()&lt;/a&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Może on też szukać w przeciwnym kierunku używając&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-previous-and-find-previous"&gt;find_previous()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-all-previous-and-find-previous"&gt;find_all_previous()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-previous-siblings-and-find-previous-sibling"&gt;find_previous_sibling()&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find-previous-siblings-and-find-previous-sibling"&gt;find_previous_siblings()&lt;/a&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ma także atrybuty (dla pogrania pojedyńczego elementu)&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-element-and-previous-element"&gt;.next_element&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-element-and-previous-element"&gt;.previous_element&lt;/a&gt;,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;i iteratorory (dla pogrania wielu elementów)&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-elements-and-previous-elements"&gt;.next_elements&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#next-elements-and-previous-elements"&gt;.previous_elements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;które mogą działać …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 31 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-31:/python-scraping-jak-w-beautifulsoup-znalesc-element-wystepujacy-za-innym-elementem.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>beautifulsoup</category></item><item><title>Python: How to split text on 2 or more new lines without importing modules.</title><link>https://blog.furas.pl/python-how-to-split-text-on-2-or-more-new-lines-without-importing-modules.-gb.html</link><description>&lt;p&gt;Example shows how to use &lt;tt class="docutils literal"&gt;while&lt;/tt&gt; loop to split text on 2 or more new lines without extra modules.&lt;/p&gt;
&lt;p&gt;Input:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&amp;quot;Hello World.\nI&amp;#39;m very happy today.\n\n\n\n\nHow are you?\n\n\nBye.&amp;quot;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Output:&lt;/p&gt;
&lt;blockquote&gt;
[&amp;quot;Hello World.nI'm very happy today.&amp;quot;, &amp;quot;How are you?&amp;quot;, &amp;quot;Bye.&amp;quot;]&lt;/blockquote&gt;
&lt;p&gt;Code loops …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 30 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-30:/python-how-to-split-text-on-2-or-more-new-lines-without-importing-modules.-gb.html</guid><category>Python</category><category>python</category></item><item><title>Python: Jak podzielić tekst na dwóch lub więcej znakach nowej linii bez używania modułów.</title><link>https://blog.furas.pl/python-jak-podzielic-tekst-na-dwoch-lub-wiecej-znakach-nowej-linii-bez-uzywania-modulow.html</link><description>&lt;p&gt;Przykład pokazuje jak użyć pętle &lt;tt class="docutils literal"&gt;while&lt;/tt&gt; do podzielenia tekstu na dwóch lub więcej znakach nowej linii bez dodatkowych modułów.&lt;/p&gt;
&lt;p&gt;Wejście:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&amp;quot;Hello World.\nI&amp;#39;m very happy today.\n\n\n\n\nHow are you?\n\n\nBye.&amp;quot;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Wyjście:&lt;/p&gt;
&lt;blockquote&gt;
[&amp;quot;Hello World.nI'm very happy today.&amp;quot;, &amp;quot;How are you?&amp;quot;, &amp;quot;Bye.&amp;quot;]&lt;/blockquote&gt;
&lt;p&gt;Kod przechodzi …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 30 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-30:/python-jak-podzielic-tekst-na-dwoch-lub-wiecej-znakach-nowej-linii-bez-uzywania-modulow.html</guid><category>Python</category><category>python</category></item><item><title>Python: How to use Selenium with local HTML in string.</title><link>https://blog.furas.pl/python-how-to-use-selenium-with-local-html-in-string-gb.html</link><description>&lt;p&gt;To run &lt;code&gt;Selenium&lt;/code&gt; on local &lt;code&gt;HTML&lt;/code&gt; which you have in &lt;code&gt;string&lt;/code&gt; you can use &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;data:text/html;charset=utf-8,&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Full example&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="s1"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;li&amp;gt;Contains Enzymatically Active B-Vitamins&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;li&amp;gt;Dietary Supplement&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;li&amp;gt;Non-GMO LE Certified&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;&amp;lt;/ul&amp;gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;driver …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 28 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-28:/python-how-to-use-selenium-with-local-html-in-string-gb.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Python: Jak użyć Selenium z lokalnym HTML w string.</title><link>https://blog.furas.pl/python-jak-uzyc-selenium-z-lokalnym-html-w-string.html</link><description>&lt;p&gt;Aby użyć &lt;code&gt;Selenium&lt;/code&gt; z lokalnym &lt;code&gt;HTML&lt;/code&gt; który jest w &lt;code&gt;string&lt;/code&gt; można użyć&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;data:text/html;charset=utf-8,&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Full example&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="s1"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;li&amp;gt;Contains Enzymatically Active B-Vitamins&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;li&amp;gt;Dietary Supplement&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;li&amp;gt;Non-GMO LE Certified&lt;/span&gt;
&lt;span class="s1"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="s1"&gt;&amp;lt;/ul&amp;gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;data …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 28 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-28:/python-jak-uzyc-selenium-z-lokalnym-html-w-string.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Python: How to add text to code128 using Pillow.</title><link>https://blog.furas.pl/python-pillow-how-to-add-text-to-code128-using-pillow-gb.html</link><description>&lt;p&gt;Module &lt;tt class="docutils literal"&gt;code128&lt;/tt&gt; create barcode but without text&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;code128&lt;/span&gt;

&lt;span class="n"&gt;barcode_param&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Hello World&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;barcode_text&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Hello World&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;barcode_image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;code128&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;barcode_param&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;but it gives it as &lt;tt class="docutils literal"&gt;Pillow&lt;/tt&gt; image so you can use &lt;tt class="docutils literal"&gt;Pillow&lt;/tt&gt; to add margin for text and to draw this text.&lt;/p&gt;
&lt;p&gt;You can get original size of barcode …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 28 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-28:/python-pillow-how-to-add-text-to-code128-using-pillow-gb.html</guid><category>Python/Pillow</category><category>python</category></item><item><title>Python: How to download PDF on US Department of Commerce using requests.</title><link>https://blog.furas.pl/python-scraping-how-to-download-pdf-on-us-department-of-commerce-using-requests-gb.html</link><description>&lt;p&gt;There is button &lt;cite&gt;&amp;quot;View attachment file&amp;quot;&lt;/cite&gt; on page&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://232app.azurewebsites.net/Forms/ExclusionRequestItem/800"&gt;https://232app.azurewebsites.net/Forms/ExclusionRequestItem/800&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;which can download PDF.&lt;/p&gt;
&lt;p&gt;Problem is that this button doesn't have &lt;cite&gt;href&lt;/cite&gt; with direct link to PDF but it uses JavaScript to get it.&lt;/p&gt;
&lt;p&gt;First idea is to use [Selenium](&lt;a class="reference external" href="https://selenium-python.readthedocs.io/"&gt;https://selenium-python.readthedocs.io/&lt;/a&gt;)
to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 28 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-28:/python-scraping-how-to-download-pdf-on-us-department-of-commerce-using-requests-gb.html</guid><category>Python/Scraping</category><category>python</category></item><item><title>Python: Jak pobrać PDF z US Department of Commerce używając requests.</title><link>https://blog.furas.pl/python-scraping-jak-pobrac-pdf-z-us-department-of-commerce-uzywajac-requests.html</link><description>&lt;p&gt;Na stronie&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://232app.azurewebsites.net/Forms/ExclusionRequestItem/800"&gt;https://232app.azurewebsites.net/Forms/ExclusionRequestItem/800&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;znajduje się przycisk &lt;cite&gt;&amp;quot;View attachment file&amp;quot;&lt;/cite&gt;, który pozwala ściągnąć PDF.&lt;/p&gt;
&lt;p&gt;Problem jest, że ten przycisk nie ma &lt;cite&gt;href&lt;/cite&gt; z bezpośrednim linkiem do PDF ale on używa JavaScript do jego pobrania.&lt;/p&gt;
&lt;p&gt;Pierswsza pomysł to użyć[Selenium](&lt;a class="reference external" href="https://selenium-python.readthedocs.io/"&gt;https://selenium-python.readthedocs.io/&lt;/a&gt;) aby to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 28 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-28:/python-scraping-jak-pobrac-pdf-z-us-department-of-commerce-uzywajac-requests.html</guid><category>Python/Scraping</category><category>python</category></item><item><title>How to use DevTools in Firefox to find JSON data in EpicGames.com</title><link>https://blog.furas.pl/python-how-to-use-devtools-in-firefox-to-find-json-data-in-epicgames-com-gb.html</link><description>&lt;p&gt;Movie shows &lt;tt class="docutils literal"&gt;Devtools&lt;/tt&gt; in &lt;tt class="docutils literal"&gt;Firefox&lt;/tt&gt;, tab &lt;tt class="docutils literal"&gt;Network&lt;/tt&gt;, filter &lt;tt class="docutils literal"&gt;XHR&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;You can access &lt;tt class="docutils literal"&gt;DevTools&lt;/tt&gt; using menu &lt;tt class="docutils literal"&gt;Web Developer&lt;/tt&gt; or key shortcut &lt;tt class="docutils literal"&gt;F12&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;After clicking link in &lt;tt class="docutils literal"&gt;DevTools&lt;/tt&gt; it shows also tabs &lt;tt class="docutils literal"&gt;Headers&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;Response&lt;/tt&gt; with JSON data.&lt;/p&gt;
&lt;p&gt;Using context menu on link (right mouse click) you can also use &lt;tt class="docutils literal"&gt;Open In …&lt;/tt&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej ‘furas’ Burek</dc:creator><pubDate>Sat, 26 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-26:/python-how-to-use-devtools-in-firefox-to-find-json-data-in-epicgames-com-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category></item><item><title>Jak użyć DevTools w Firefox do szukania danych JSON na EpicGames.com</title><link>https://blog.furas.pl/python-jak-uzyc-devtools-w-firefox-do-szukania-danych-json-na-epicgames-com.html</link><description>&lt;p&gt;Film pokazuje &lt;tt class="docutils literal"&gt;Devtools&lt;/tt&gt; w &lt;tt class="docutils literal"&gt;Firefox&lt;/tt&gt;, zakłada &lt;tt class="docutils literal"&gt;Network&lt;/tt&gt;, filtr &lt;tt class="docutils literal"&gt;XHR&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Można dostać się do &lt;tt class="docutils literal"&gt;DevTools&lt;/tt&gt; używając menu &lt;tt class="docutils literal"&gt;Web Developer&lt;/tt&gt; lub skrótu klawiszowego &lt;tt class="docutils literal"&gt;F12&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Po kliknięciu w link w &lt;tt class="docutils literal"&gt;DevTools&lt;/tt&gt; pokazuje także boczne zakładki &lt;tt class="docutils literal"&gt;Headers&lt;/tt&gt; i &lt;tt class="docutils literal"&gt;Response&lt;/tt&gt; z danymi JSON.&lt;/p&gt;
&lt;p&gt;Używając na linku menu kontektowego (prawy przycisk myszy) można także użyć &lt;tt class="docutils literal"&gt;Open …&lt;/tt&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej ‘furas’ Burek</dc:creator><pubDate>Sat, 26 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-26:/python-jak-uzyc-devtools-w-firefox-do-szukania-danych-json-na-epicgames-com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category></item><item><title>Firefox: How to search selected text in new tab in background and stay in current tab.</title><link>https://blog.furas.pl/firefox-how-to-search-selected-text-in-new-tab-in-background-and-stay-in-current-tab.-gb.html</link><description>&lt;p&gt;When I select text and I choose &lt;tt class="docutils literal"&gt;search&lt;/tt&gt; in context menu (right click) then it opens new tab and jump to this tab (it becomes active tab)
but I would like to run this search in new tab but in background and still work with original tab to search other …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 24 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-24:/firefox-how-to-search-selected-text-in-new-tab-in-background-and-stay-in-current-tab.-gb.html</guid><category>Firefox</category><category>firefox</category></item><item><title>Firefox: Jak szukać zaznaczonego tekstu w nowe karcie w tle i pozostać w obecnej karcie.</title><link>https://blog.furas.pl/firefox-jak-szukac-zaznaczonego-tekstu-w-nowej-karcie-w-tle-i-pozostac-w-obecnej-karcie.html</link><description>&lt;p&gt;Kiedy zaznaczę tekst i wybiorę &lt;tt class="docutils literal"&gt;search&lt;/tt&gt; w menu kontekstowy (prawy klick) to wtedy otwiera się nowa karta i przechodzi do tej karty (staje się ona aktywna)
ale ja chciałbym uruchomić to szukanie w nowej karcie ale w tle i wciąż pracować w oryginalnej karcie aby szukać następnych elementów - podobnie do …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 24 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-24:/firefox-jak-szukac-zaznaczonego-tekstu-w-nowej-karcie-w-tle-i-pozostac-w-obecnej-karcie.html</guid><category>Firefox</category><category>firefox</category></item><item><title>Selenium: How to download file to selected folder without asking for confirmation</title><link>https://blog.furas.pl/python-selenium-how-to-download-file-to-selected-folder-without-asking-for-confirmation-gb.html</link><description>&lt;p&gt;On web pages adding &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;application/octet-stream&lt;/span&gt;&lt;/tt&gt; was popular method to force downloading - especially for &lt;tt class="docutils literal"&gt;PDF&lt;/tt&gt; -
because some users may have settings in browser which displays &lt;tt class="docutils literal"&gt;PDF&lt;/tt&gt; with built-in viewer instead of downloading.&lt;/p&gt;
&lt;p&gt;In this example for some computers it needed also &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;binary/octet-stream&lt;/span&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;Minimal working code with example CSV&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;from …&lt;/span&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 24 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-24:/python-selenium-how-to-download-file-to-selected-folder-without-asking-for-confirmation-gb.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category></item><item><title>Tkinter: How to set size for empty row or column in grid().</title><link>https://blog.furas.pl/python-tkinter-how-to-set-size-for-empty-row-or-column-in-grid-gb.html</link><description>&lt;p&gt;As default empty row/column has height/width 0 (zero) and you don't see this row/column but it exists.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;l1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Col:8 Row:1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'red'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;l1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;l2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Col …&lt;/span&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Thu, 24 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-24:/python-tkinter-how-to-set-size-for-empty-row-or-column-in-grid-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>grid</category></item><item><title>Python: What means error UnicodeDecodeError: 'charmap' codec can't decode byte XXX in position XXX</title><link>https://blog.furas.pl/python-what-means-error-unicodedecodeerror-charmap-codec-cant-decode-byte-in-position-gb.html</link><description>&lt;p&gt;Error &lt;tt class="docutils literal"&gt;UnicodeDecodeError&lt;/tt&gt; can means you or some code try to convert bytes to string using wrong encoding.&lt;/p&gt;
&lt;p&gt;Usually Python uses encoding &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;UTF-8&lt;/span&gt;&lt;/tt&gt; to read text from file or from network&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;fh&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fh&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;but sometimes file or web page may keep text …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 24 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-24:/python-what-means-error-unicodedecodeerror-charmap-codec-cant-decode-byte-in-position-gb.html</guid><category>Python/Error</category><category>python</category><category>error</category></item><item><title>Python: How to format HTML from HtmlDiff in difflib when text is too long.</title><link>https://blog.furas.pl/python-difflib-how-to-format-html-from-htmldiff-when-text-is-too-long-gb.html</link><description></description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 23 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-23:/python-difflib-how-to-format-html-from-htmldiff-when-text-is-too-long-gb.html</guid><category>Python</category><category>python</category><category>html</category></item><item><title>Python: How to use requests to send JSON data, POST data, args in url and files to server aiohttp.web</title><link>https://blog.furas.pl/python-aiohttp-how-to-use-requests-to-send-json-post-data-url-args-files-to-aiohttp-web-server-GB.html</link><description>&lt;h2&gt;JSON data&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;requests&lt;/code&gt; uses &lt;code&gt;json=&lt;/code&gt; to send &lt;code&gt;JSON&lt;/code&gt; and it automatically convert dictionary and add header &lt;code&gt;'Content-Type': 'application/json'&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://0.0.0.0:8080/test&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;param1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;value1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;param2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;value2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The same with standard &lt;code&gt;data=&lt;/code&gt; .&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://0 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-aiohttp-how-to-use-requests-to-send-json-post-data-url-args-files-to-aiohttp-web-server-GB.html</guid><category>Python/Requests</category><category>python</category><category>requests</category><category>aiohttp</category></item><item><title>Flask: How to use BytesIO in Flask to display matplotlib image without saving in file.</title><link>https://blog.furas.pl/python-flask-how-to-use-bytesio-in-flask-to-display-matplotlib-image-without-saving-in-file.html</link><description>&lt;p&gt;Przykład pokazuje jak
- użyć &lt;code&gt;BytesIO&lt;/code&gt; do stworzenie w pamięci obiekt pseudo-pliku 
- zapisać w tym obiekcie obrazu z &lt;code&gt;matplotlib&lt;/code&gt; w formacie &lt;code&gt;png&lt;/code&gt;
- pobrać dane z tego obiektu
- zamienić te dane na text zakodowany &lt;code&gt;base64&lt;/code&gt;
- stworzyć w HTML tag obrazka z osadzonym obrazkiem w &lt;code&gt;base64&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;
&lt;span class="c1"&gt;#from flask import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-flask-how-to-use-bytesio-in-flask-to-display-matplotlib-image-without-saving-in-file.html</guid><category>Python/Flask</category><category>python</category><category>flask</category><category>bytesio</category><category>matplotlib</category></item><item><title>Python: How to get many tweets with function search() in Twython</title><link>https://blog.furas.pl/python-how-to-get-many-tweets-with-function-search-in-twython-gb.html</link><description>&lt;p&gt;In module &lt;code&gt;Twython&lt;/code&gt; you can use function &lt;code&gt;search()&lt;/code&gt; to search tweets&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;twython&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Twython&lt;/span&gt;

&lt;span class="n"&gt;CONSUMER_KEY&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;TWITTER_CONSUMER_KEY&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;CONSUMER_SECRET&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;TWITTER_CONSUMER_SECRET&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;twitter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Twython&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CONSUMER_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CONSUMER_SECRET&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;twitter&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;python&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;tweets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;statuses&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tweets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-how-to-get-many-tweets-with-function-search-in-twython-gb.html</guid><category>Python</category><category>python</category></item><item><title>Python How to process all messages in Discord.</title><link>https://blog.furas.pl/python-how-to-process-all-messages-in-discord-gb.html</link><description>&lt;p&gt;&lt;code&gt;bot.commands&lt;/code&gt; is extension (you import it from &lt;code&gt;discord.ext&lt;/code&gt;) which helps to make code simpler - ie. 
it automatically recognize if message has prefix, it splits message to words, and it assigns command to function.&lt;/p&gt;
&lt;p&gt;But you don't have to use it. You can use event &lt;code&gt;on_message&lt;/code&gt; to get full …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-how-to-process-all-messages-in-discord-gb.html</guid><category>Python</category><category>python</category></item><item><title>Python How to run two processes at the same time with asyncio</title><link>https://blog.furas.pl/python-how-to-run-two-processes-at-the-same-time-with-asyncio-gb.html</link><description>&lt;p&gt;How to run &lt;code&gt;send_data()&lt;/code&gt; and &lt;code&gt;read_data()&lt;/code&gt; at the same time in &lt;code&gt;asyncio&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;You can't use &lt;code&gt;run()&lt;/code&gt; to start two processes at the same time in asyncio. 
&lt;code&gt;run()&lt;/code&gt; starts one process and it waits for its end - so &lt;code&gt;run(send_data())&lt;/code&gt; starts function &lt;code&gt;send_data&lt;/code&gt; and it waits for its end - and this …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-how-to-run-two-processes-at-the-same-time-with-asyncio-gb.html</guid><category>Python</category><category>python</category><category>asyncio</category></item><item><title>Python: Jak pobrać wiele tweetów z użyciem funkcji search() w Twython</title><link>https://blog.furas.pl/python-jak-pobrac-wiele-tweetow-z-uzyciem-funkcji-search-w-twython.html</link><description>&lt;p&gt;W mdoule &lt;code&gt;Twython&lt;/code&gt; możesz użyć funkcji &lt;code&gt;search()&lt;/code&gt; do szukania tweetów&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;twython&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Twython&lt;/span&gt;

&lt;span class="n"&gt;CONSUMER_KEY&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;TWITTER_CONSUMER_KEY&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;CONSUMER_SECRET&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;TWITTER_CONSUMER_SECRET&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;twitter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Twython&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CONSUMER_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CONSUMER_SECRET&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;twitter&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;q&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;python&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;tweets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;statuses&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tweets&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;id …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-jak-pobrac-wiele-tweetow-z-uzyciem-funkcji-search-w-twython.html</guid><category>Python</category><category>python</category></item><item><title>Python Jak uruchomić dwa procesy w tym samym czasie w asyncio</title><link>https://blog.furas.pl/python-jak-uruchomic-dwa-procesy-w-tym-samym-czasie-w-asyncio.html</link><description>&lt;p&gt;Problem jest jak uruchomić &lt;code&gt;send_data()&lt;/code&gt; i &lt;code&gt;read_data()&lt;/code&gt; w tym samym czasie w &lt;code&gt;asyncio&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nie można użyć &lt;code&gt;run()&lt;/code&gt; do wystartowaniw dwóch procesów w tym samym czasie w asyncio. 
&lt;code&gt;run()&lt;/code&gt; startuje jeden proces i czeka na jego zakończenie - tak więc &lt;code&gt;run(send_data())&lt;/code&gt; startuje funkcję &lt;code&gt;send_data&lt;/code&gt; i czeka na jej zakończenie - i dlatego …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-jak-uruchomic-dwa-procesy-w-tym-samym-czasie-w-asyncio.html</guid><category>Python</category><category>python</category><category>asyncio</category></item><item><title>Python: Jak użyć requests do wysłania danych JSON, danych POST, argumentów w url i plików do serwera aiohttp.web</title><link>https://blog.furas.pl/python-jak-uzyc-requests-do-wyslania-danych-json-danych-post-argumentow-w-url-i-plikow-do-serwera-aiohttp-web-PL.html</link><description>&lt;h2&gt;Dane JSON&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;requests&lt;/code&gt; używa &lt;code&gt;json=&lt;/code&gt; do wysyłania &lt;code&gt;JSON&lt;/code&gt; i automatycznie zamienia na text i dodaje nagłówek &lt;code&gt;'Content-Type': 'application/json'&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://0.0.0.0:8080/test&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;param1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;value1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;param2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;value2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;To samo z użyciem standardowego &lt;code&gt;data=&lt;/code&gt; .&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-jak-uzyc-requests-do-wyslania-danych-json-danych-post-argumentow-w-url-i-plikow-do-serwera-aiohttp-web-PL.html</guid><category>Python/Requests</category><category>python</category><category>requests</category><category>aiohttp</category></item><item><title>Tools to display pressed keys and mouse moves on screeen in Linux</title><link>https://blog.furas.pl/python-tools-to-display-pressed-keys-and-mouse-moves-on-screen-in-linux-gb.html</link><description>&lt;p&gt;Few programs which can be used to display pressed keys and mouse moves on screen in Linux. 
It can be usefull during presentation or screen recording in video.&lt;/p&gt;
&lt;h2&gt;&lt;a href="https://www.thregr.org/~wavexx/software/screenkey/"&gt;screenkey&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="n"&gt;screenkey&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="o"&gt;://&lt;/span&gt;&lt;span class="n"&gt;www&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;thregr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/~&lt;/span&gt;&lt;span class="n"&gt;wavexx&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;software&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;screenkey&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;repo&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="n"&gt;screenkey&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="o"&gt;://&lt;/span&gt;&lt;span class="n"&gt;gitlab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;screenkey&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;screenkey&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;only&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;only&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Linux&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;code …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-tools-to-display-pressed-keys-and-mouse-moves-on-screen-in-linux-gb.html</guid><category>Linux</category><category>linux</category></item><item><title>Flask: How to use BytesIO in Flask to display matplotlib image without saving in file.</title><link>https://blog.furas.pl/python-flask-how-to-use-bytesio-in-flask-to-display-matplotlib-image-without-saving-in-file-gb.html</link><description>&lt;p&gt;Example shows how to 
- use &lt;code&gt;BytesIO&lt;/code&gt; to create file-like object in memory 
- save &lt;code&gt;matplotlib&lt;/code&gt; image in this object in format &lt;code&gt;png&lt;/code&gt;
- get data from this object 
- convert data to string encoded &lt;code&gt;base64&lt;/code&gt;
- create HTML image tag with embede image &lt;code&gt;base64&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;
&lt;span class="c1"&gt;#from flask import render_template&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 21 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-21:/python-flask-how-to-use-bytesio-in-flask-to-display-matplotlib-image-without-saving-in-file-gb.html</guid><category>Python/Flask</category><category>python</category><category>flask</category><category>bytesio</category><category>matplotlib</category></item><item><title>Python: How to reuse Pool in multiprocessing and append new processes to running Pool?</title><link>https://blog.furas.pl/python-multiprocessing-how-to-reuse-pool-in-multiprocessing-and-append-new-processes-to-running-pool.html</link><description>&lt;p&gt;In documentation for &lt;a href="https://docs.python.org/dev/library/multiprocessing.html"&gt;multiprocessing&lt;/a&gt; you can see example with &lt;code&gt;Pool&lt;/code&gt; similar to &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;multiprocessing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Pool&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Pool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,]))&lt;/span&gt; &lt;span class="c1"&gt;# it …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 20 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-20:/python-multiprocessing-how-to-reuse-pool-in-multiprocessing-and-append-new-processes-to-running-pool.html</guid><category>Python/Multiprocessing</category><category>python</category><category>multiprocessing</category><category>threading</category></item><item><title>Python: Jaj użyć wielokrotnie Pool w multiprocessing i dodawać nowe processy do działającego już Pool?</title><link>https://blog.furas.pl/python-multiprocessing-jak-uzyc-wielokrotnie-pool-w-multiprocessing-i-dodawac-nowe-procesy-do-dzialajacego-juz-pool.html</link><description>&lt;p&gt;W dokumentacji dla &lt;a href="https://docs.python.org/dev/library/multiprocessing.html"&gt;multiprocessing&lt;/a&gt; można zobaczyć przykład z &lt;code&gt;Pool&lt;/code&gt; podobny do tego&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;multiprocessing&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Pool&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Pool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pool&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;apply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,]))&lt;/span&gt; &lt;span class="c1"&gt;# it …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 20 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-20:/python-multiprocessing-jak-uzyc-wielokrotnie-pool-w-multiprocessing-i-dodawac-nowe-procesy-do-dzialajacego-juz-pool.html</guid><category>Python/Multiprocessing</category><category>python</category><category>multiprocessing</category><category>threading</category></item><item><title>Tkinter: How to update widgets using value selected in Combobox?</title><link>https://blog.furas.pl/python-tkinter-how-to-update-widgets-using-value-selected-in-combobox.html</link><description>&lt;p&gt;To get value selected in &lt;code&gt;Combobox&lt;/code&gt; and use it to update value in &lt;code&gt;Label&lt;/code&gt; you can use &lt;code&gt;bind()&lt;/code&gt; with (virtual) event &lt;code&gt;'&amp;lt;&amp;lt;ComboboxSelected&amp;gt;&amp;gt;'&lt;/code&gt;. 
It can be used to assing function which will be executed you select value in &lt;code&gt;Combobox&lt;/code&gt; - and this function may update value in &lt;code&gt;Label&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 20 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-20:/python-tkinter-how-to-update-widgets-using-value-selected-in-combobox.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>combobox</category></item><item><title>Tkinter: Jak zmienić zawartość jakiegoś widgeta używając wartości wybranej w Combobox?</title><link>https://blog.furas.pl/python-tkinter-jak-zmienic-zawartosc-jakiegos-widgeta-uzywajac-wartosci-wybranej-w-combobox.html</link><description>&lt;p&gt;Aby pobrać wartość wybraną w &lt;code&gt;Combobox&lt;/code&gt; i użyć jej do zmienienia wartości w &lt;code&gt;Label&lt;/code&gt; możesz użyć &lt;code&gt;bind()&lt;/code&gt; z (wirtualnym) zdarzeniem &lt;code&gt;'&amp;lt;&amp;lt;ComboboxSelected&amp;gt;&amp;gt;'&lt;/code&gt;. 
Można go użyć do przypisania funkcji, która ma być wykonana zaraz po wybraniu wartości w &lt;code&gt;Combobox&lt;/code&gt; - i tak funkcja może zmienić wartość &lt;code&gt;Label&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 20 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-20:/python-tkinter-jak-zmienic-zawartosc-jakiegos-widgeta-uzywajac-wartosci-wybranej-w-combobox.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>combobox</category></item><item><title>Python: How to use SQLite3 to create simple login system.</title><link>https://blog.furas.pl/python-sqlite-how-to-use-sqlite3-to-create-simple-login-system-gb.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sqlite3&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_table&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;DROP TABLE IF EXISTS login&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;CREATE TABLE login(username VARCHAR UNIQUE, password VARCHAR)&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_user&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;INSERT INTO login (username, password) VALUES (?, ?)&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;check_user&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 18 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-18:/python-sqlite-how-to-use-sqlite3-to-create-simple-login-system-gb.html</guid><category>Python</category><category>python</category><category>sqlite</category><category>database</category></item><item><title>Python: Jak użyć SQLite3 do stworzenia prostego systemu logowania.</title><link>https://blog.furas.pl/python-sqlite-jak-uzyc-sqlite3-do-stworzenia-prostego-ssytemu-logowania.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sqlite3&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_table&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;DROP TABLE IF EXISTS login&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;CREATE TABLE login(username VARCHAR UNIQUE, password VARCHAR)&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_user&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;INSERT INTO login (username, password) VALUES (?, ?)&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;check_user&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 18 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-18:/python-sqlite-jak-uzyc-sqlite3-do-stworzenia-prostego-ssytemu-logowania.html</guid><category>Python</category><category>python</category><category>sqlite</category><category>database</category></item><item><title>Python: How to prevent requests from percent encoding in URLs?</title><link>https://blog.furas.pl/python-requests-how-to-prevent-requests-from-percent-encoding-in-urls.html</link><description>&lt;p&gt;If you need url with parameter like &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    key=site:dummy+type:example+group:wheel
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and you use standard method&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;key&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;site:dummy+type:example+group:wheel&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;then it converts it to &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    key=site%3Adummy%2Btype%3Aexample%2Bgroup%3Awheel&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;To get it without converting …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 16 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-16:/python-requests-how-to-prevent-requests-from-percent-encoding-in-urls.html</guid><category>Python/Requests</category><category>python</category><category>request</category></item><item><title>Python: Jak zapobiegać użyciu znaku procenta w url przez requests?</title><link>https://blog.furas.pl/python-requests-jak-zapobiegac-uzyciu-znaku-procenta-w-url-przez-requests.html</link><description>&lt;p&gt;Jeśli potrzebujesz url z parametem podobnym do poniższego (z &lt;code&gt;+&lt;/code&gt; i &lt;code&gt;:&lt;/code&gt;)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    key=site:dummy+type:example+group:wheel
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;i użyjesz standardowej metody przekazywania parametrów w &lt;code&gt;requests&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;key&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;site:dummy+type:example+group:wheel&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;to zostanie on przekonwetowany do postaci "bezpiecznej" dla przesyłu parametrów&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    key …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 16 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-16:/python-requests-jak-zapobiegac-uzyciu-znaku-procenta-w-url-przez-requests.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Python: Jak przetwarzać wszystkie wiadomości w Discord.</title><link>https://blog.furas.pl/python-jak-przetwarzac-wszystkie-wiadomosci-w-discord.html</link><description>&lt;p&gt;&lt;code&gt;bot.commands&lt;/code&gt; is extension (you import it from &lt;code&gt;discord.ext&lt;/code&gt;) which helps to make code simpler - ie. 
it automatically recognize if message has prefix, it splits message to words, and it assigns command to function.&lt;/p&gt;
&lt;p&gt;But you don't have to use it. You can use event &lt;code&gt;on_message&lt;/code&gt; to get full …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 15 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-15:/python-jak-przetwarzac-wszystkie-wiadomosci-w-discord.html</guid><category>Python</category><category>python</category><category>discord</category><category>bot</category></item><item><title>Python: How to use Tor Network with requests to change IP?</title><link>https://blog.furas.pl/python-how-to-use-tor-network-with-requests-to-change-ip.html</link><description>&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Tor_(anonymity_network)"&gt;Tor Network&lt;/a&gt; can be used to run &lt;code&gt;requests&lt;/code&gt; with changed IP.&lt;/p&gt;
&lt;p&gt;If you have installed &lt;code&gt;Tor&lt;/code&gt; then it should run all time as service 
and you could use it as &lt;code&gt;proxy server&lt;/code&gt; with address &lt;code&gt;127.0.0.1:9050&lt;/code&gt; (&lt;code&gt;localhost:9050&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;In &lt;code&gt;requests&lt;/code&gt; you can use it &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;proxy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;http&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="s1"&gt;&amp;#39;socks5 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 14 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-14:/python-how-to-use-tor-network-with-requests-to-change-ip.html</guid><category>Python</category><category>python</category><category>requests</category><category>tor</category><category>ip</category><category>scraping</category><category>proxy</category></item><item><title>Python: Jak użyć sieć Tor z requests ze zmienionym IP?</title><link>https://blog.furas.pl/python-jak-uzyc-siec-tor-z-requests-ze-zmienionym-ip.html</link><description>&lt;p&gt;&lt;a href="https://pl.wikipedia.org/wiki/Tor_(sie%C4%87_anonimowa)"&gt;Sieć Tor&lt;/a&gt; może być użyta do uruchomienia &lt;code&gt;requests&lt;/code&gt; ze zmienionym IP.&lt;/p&gt;
&lt;p&gt;Jeśli masz już zainstalowany &lt;code&gt;Tor&lt;/code&gt; wtedy powinien on chodzić cały czas jako usługa
i powinna być możliwość użycia go jako &lt;code&gt;proxy server&lt;/code&gt; z adresem &lt;code&gt;127.0.0.1:9050&lt;/code&gt; (&lt;code&gt;localhost:9050&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;W &lt;code&gt;requests&lt;/code&gt; możesz użyć&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;proxy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;http&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="s1"&gt;&amp;#39;socks5://127 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 14 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-14:/python-jak-uzyc-siec-tor-z-requests-ze-zmienionym-ip.html</guid><category>Python</category><category>python</category><category>requests</category><category>tor</category><category>ip</category><category>scraping</category><category>proxy</category></item><item><title>Pillow: How to paste transparent animated gif on other image?</title><link>https://blog.furas.pl/python-pillow-how-to-paste-transparent-animated-gif-on-other-image-GB.html</link><description>&lt;p&gt;This example shows how to get animated GIF and put it on other image.&lt;/p&gt;
&lt;p&gt;It uses &lt;code&gt;ImageSequence&lt;/code&gt; to get animation frame-by-frame and paste it on duplicated background.&lt;/p&gt;
&lt;p&gt;Because GIF has transparent bacground so it needs to convert frame(s) to &lt;code&gt;RGBA&lt;/code&gt; to use &lt;code&gt;Alpha&lt;/code&gt; as transparency mask.&lt;/p&gt;
&lt;p&gt;After creating all …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 14 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-14:/python-pillow-how-to-paste-transparent-animated-gif-on-other-image-GB.html</guid><category>Python/Pillow</category><category>python</category><category>pillow</category></item><item><title>Pillow: Jak wstawić transparentny animowany gif na inny obraz?</title><link>https://blog.furas.pl/python-pillow-jak-wstawic-transparentny-animowany-gif-na-inny-obraz.html</link><description>&lt;p&gt;To jest przykład jak pobrać animowany GIF i wstawić go na innym obrazku.&lt;/p&gt;
&lt;p&gt;Kod używa &lt;code&gt;ImageSequence&lt;/code&gt; do pobrania animacji klatka-po-klatce i wstawia je na powielane tło.&lt;/p&gt;
&lt;p&gt;Ponieważ GIF ma transparentne tło więc trzeba klatki zamieniać na &lt;code&gt;RGBA&lt;/code&gt; aby użyć kanał &lt;code&gt;Alfa&lt;/code&gt; jako maskę transparentności.&lt;/p&gt;
&lt;p&gt;Po stworzeniu wszystkich klatek bierze pierwszą …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 14 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-14:/python-pillow-jak-wstawic-transparentny-animowany-gif-na-inny-obraz.html</guid><category>Python/Pillow</category><category>python</category><category>pillow</category></item><item><title>Problem with button in Google Search with framework UIKIT</title><link>https://blog.furas.pl/problem-with-button-in-google-searchz-with-framework-uikit-gb.html</link><description>&lt;p&gt;After adding Google Search its button was incorrect&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="/images/inne/google-search-button-1.webp" alt="google search button"/&gt;
&lt;/div&gt;

&lt;p&gt;Problem makes standard setting in framework &lt;a href="https://getuikit.com/"&gt;UIKIT&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;svg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It helps to add this CSS rule &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;gsc-search-button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;gsc-search-button-v2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;svg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;none&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="center"&gt;
&lt;img src="/images/inne/google-search-button-2.webp" alt="google search button"/&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 11 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-11:/problem-with-button-in-google-searchz-with-framework-uikit-gb.html</guid><category>Inne</category><category>inne</category><category>uikit</category></item><item><title>Problem z przyciskiem w Google Search pod UIKIT</title><link>https://blog.furas.pl/problem-z-przyciskiem-w-google-search-pod-uikit.html</link><description>&lt;p&gt;Po wstawieniu na stronę wyszukiwarki Google jej przycisk był niepoprawny&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="/images/inne/google-search-button-1.webp" alt="google search button"/&gt;
&lt;/div&gt;

&lt;p&gt;Powodem tego było standardowe ustawienie w frameworku &lt;a href="https://getuikit.com/"&gt;UIKIT&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;svg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="kt"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Pomogło dodanie tej reguły&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;gsc-search-button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;gsc-search-button-v2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;svg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;none&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;!important&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="center"&gt;
&lt;img src="/images/inne/google-search-button-2.webp" alt="google search button"/&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 11 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-11:/problem-z-przyciskiem-w-google-search-pod-uikit.html</guid><category>Inne</category><category>inne</category><category>uikit</category></item><item><title>Python: How in pynput runs function only once when you click many times and function is already running?</title><link>https://blog.furas.pl/python-how-in-pynput-runs-function-only-once-when-you-click-many-times-and-function-is-already-running.html</link><description>&lt;p&gt;If you will use &lt;code&gt;Listener&lt;/code&gt; to run long-running code directly in current thread 
then it will block listener and listener will not execute other code. 
Listener will also not get mouse events from system and these events will wait in queue and listener will get them later and it will …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 11 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-11:/python-how-in-pynput-runs-function-only-once-when-you-click-many-times-and-function-is-already-running.html</guid><category>Python</category><category>python</category><category>pynput</category><category>thread</category><category>mouse</category><category>click</category></item><item><title>Python: Jak w pynput uruchamiać funkcję tylko raz pomimo wielokrotnego klikania myszą gdy funcja już jest uruchomiona?</title><link>https://blog.furas.pl/python-jak-w-pynput-uruchamiac-funkcje-tylko-raz-pomimo-wielokrotnego-klikania-mysza-gdy-funcja-juz-jest-uruchomiona.html</link><description>&lt;p&gt;Jeśli będzie używał &lt;code&gt;Listener&lt;/code&gt; do uruchamia w głównym wątku długo trwającego kodu 
wtedy będzie on blokował listener i nie będzie on mógł wykonywac innego kodu.
Listener nie będzie mógł także odbierać od systemu zdarzeń i będą one czekały w kolejne 
i listener odbierze je później i zdarzenia te mogą uruchomić …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 11 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-11:/python-jak-w-pynput-uruchamiac-funkcje-tylko-raz-pomimo-wielokrotnego-klikania-mysza-gdy-funcja-juz-jest-uruchomiona.html</guid><category>Python</category><category>python</category><category>pynput</category><category>thread</category><category>mouse</category><category>click</category><category>mysz</category><category>kliknięcie</category></item><item><title>Python: How to merge and update dictionary without changing old dictionary? New method in Python 3.9.</title><link>https://blog.furas.pl/python-how-to-merge-and-update-dictionary-without-changing-old-dictionary-new-method-in-python-3-9-GB.html</link><description>&lt;p&gt;In Python 3.9 there is new method to create new dictionary with updated values and keep old dictionary without updates - using operator &lt;code&gt;|&lt;/code&gt; &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;new_dict&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;old_dict&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;dict_with_updates&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;With list comprehension it will be&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;arg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Full example&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;b&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-09:/python-how-to-merge-and-update-dictionary-without-changing-old-dictionary-new-method-in-python-3-9-GB.html</guid><category>Python</category><category>python</category><category>dictinary</category></item><item><title>Python: How to read incorrect/dirty JSON data?</title><link>https://blog.furas.pl/python-how-to-read-incorrect-dirty-json-data-GB-gb.html</link><description>&lt;p&gt;If you have incorrect (dirty) JSON data then you can try to use module &lt;a href="https://github.com/codecobblers/dirtyjson"&gt;dirtyjson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For example it can read 
- dictionary keys without &lt;code&gt;" "&lt;/code&gt; (but not dictionary values), 
- dictionary keys/values with &lt;code&gt;' '&lt;/code&gt; instead of &lt;code&gt;" "&lt;/code&gt;,
- dictionary/list elements with &lt;code&gt;,&lt;/code&gt; after last element&lt;/p&gt;
&lt;p&gt;It can't read empty data.&lt;/p&gt;
&lt;p&gt;Example which show it&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-09:/python-how-to-read-incorrect-dirty-json-data-GB-gb.html</guid><category>Python</category><category>python</category><category>json</category></item><item><title>Python: How to use module struct-to-convert-(un)signed-byte-to-integer-value</title><link>https://blog.furas.pl/python-how-to-use-struct-to-convert-signed-byte-to-integer-value-GB.html</link><description>&lt;p&gt;In languages like C/C++ when you use &lt;code&gt;signed&lt;/code&gt; byte then value &lt;code&gt;\xff&lt;/code&gt; means &lt;code&gt;-1&lt;/code&gt; (and byte can have values -128...127) and when you use &lt;code&gt;unsigned&lt;/code&gt; byte then  value &lt;code&gt;\xff&lt;/code&gt; means &lt;code&gt;255&lt;/code&gt; (and byte can have values 0...255) &lt;/p&gt;
&lt;p&gt;Similar with 16-bits - value &lt;code&gt;\xff\xff&lt;/code&gt; means &lt;code&gt;-1&lt;/code&gt; when you …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-09:/python-how-to-use-struct-to-convert-signed-byte-to-integer-value-GB.html</guid><category>Python</category><category>python</category><category>struct</category></item><item><title>Python: Jak wczytać niepoprawne dane JSON?</title><link>https://blog.furas.pl/python-jak-wczytac-niepoprawne-dane-json-PL.html</link><description>&lt;!-- https://ryanmarcus.github.io/dirty-json/ --&gt;

&lt;p&gt;Jeśli masz niepoprawne dane JSON wtedy możesz spróbować użyć modułu &lt;a href="https://github.com/codecobblers/dirtyjson"&gt;dirtyjson&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dla przykładu wczytuje on
- klucze słownkia bez &lt;code&gt;" "&lt;/code&gt; (ale nie wartości słownika bez &lt;code&gt;" "&lt;/code&gt;), 
- klucze/wartość słownika z &lt;code&gt;' '&lt;/code&gt; zamiast &lt;code&gt;" "&lt;/code&gt;,
- słownik/listę with &lt;code&gt;,&lt;/code&gt; za ostatnim elementem&lt;/p&gt;
&lt;p&gt;Nie potrafi on wczytać pustego zbioru danych.&lt;/p&gt;
&lt;p&gt;Przykład, który to pokazuje moduł w działaniu&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dirtyjson …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-09:/python-jak-wczytac-niepoprawne-dane-json-PL.html</guid><category>Python</category><category>python</category><category>json</category></item><item><title>Tkinter: How to change state to disable/enable Button or other widget</title><link>https://blog.furas.pl/python-tkinter-how-to-change-state-to-disable-enable-button-or-other-widget-GB.html</link><description>&lt;p&gt;You can deactivate button with&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;button&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;disabled&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and activate it back with&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;button&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;normal&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;eventually &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;button&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;active&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The same way you can also deactivate other widgets - ie. &lt;code&gt;Label&lt;/code&gt;, &lt;code&gt;Entry&lt;/code&gt;, etc. &lt;/p&gt;
&lt;p&gt;Other widgets may have different states - ie. &lt;code&gt;Entry&lt;/code&gt; has state &lt;code&gt;"readonly"&lt;/code&gt; (but it doesn't …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-09:/python-tkinter-how-to-change-state-to-disable-enable-button-or-other-widget-GB.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Why Label doesn't display image? Bug with Garbage Collector in PhotoImage.</title><link>https://blog.furas.pl/python-tkinter-why-label-doesnt-display-image-bug-with-garbage-collector-in-photoimage-GB.html</link><description>&lt;p&gt;Sometimes image can disappear when you move code into function. 
It is common problem with bug in &lt;code&gt;PhotoImage&lt;/code&gt; with &lt;code&gt;garbage collector&lt;/code&gt; which removes image from memory when image is assigned to local variable (variable created in function). You have to assign image to &lt;code&gt;global&lt;/code&gt; variable or to some object - ie …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-09:/python-tkinter-why-label-doesnt-display-image-bug-with-garbage-collector-in-photoimage-GB.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>image</category><category>photoimage</category><category>bug</category></item><item><title>How to run pynput Listener simultaneously with other Python module</title><link>https://blog.furas.pl/python-how-to-run-pynput-keyboard-listener-simultaneously-with-other-python-module.html</link><description>&lt;p&gt;&lt;code&gt;pynput&lt;/code&gt; documentation shows examples &lt;a href="[pynput](https://pynput.readthedocs.io/en/latest/keyboard.html)"&gt;how to monitoring the keyboard&lt;/a&gt; and &lt;a href="https://pynput.readthedocs.io/en/latest/mouse.html#monitoring-the-mouse"&gt;how to monitoring the mouse&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For &lt;code&gt;keyboard&lt;/code&gt; it looks similar for this&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pynput&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;keyboard&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# some code&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# some code&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;For …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 07 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-07:/python-how-to-run-pynput-keyboard-listener-simultaneously-with-other-python-module.html</guid><category>Python</category><category>python</category><category>pynput</category></item><item><title>How to get keycode in Python using Tkinter or PyGame</title><link>https://blog.furas.pl/how-to-get-keycode-in-python-using-tkinter-or-pygame.html</link><description>&lt;h1&gt;Tkitner&lt;/h1&gt;
&lt;p&gt;This code uses &lt;code&gt;tkinter&lt;/code&gt; to get pressed/released key and display its keycode (scancode), keysym, char (unicode)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# display pressed key&lt;/span&gt;
    &lt;span class="c1"&gt;#print(event)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;PRESS   | keycode: &lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;, keysym: &lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;, char: &lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keycode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keysym&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# display released key&lt;/span&gt;
    &lt;span class="c1"&gt;#print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 06 Dec 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-12-06:/how-to-get-keycode-in-python-using-tkinter-or-pygame.html</guid><category>Python</category><category>python</category><category>tkinter</category><category>pygame</category></item><item><title>Tkinter: How to use Radiobutton and grid() to create clickable calendar.</title><link>https://blog.furas.pl/python-tkinter-how-to-use-radiobutton-and-grid-to-create-clickable-calendar-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/61144411/tkinter-can-a-radio-button-control-multiple-variables --&gt;

&lt;p&gt;This simple example shows how to use &lt;code&gt;Radiobutton&lt;/code&gt; and &lt;code&gt;grid&lt;/code&gt; (and &lt;code&gt;datetime&lt;/code&gt;) to create calendar for one month.&lt;/p&gt;
&lt;p&gt;It also shows how to use &lt;code&gt;command=&lt;/code&gt; in &lt;code&gt;Radiobutton&lt;/code&gt; to execute function which changes text in few &lt;code&gt;Labels&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Because &lt;code&gt;command=&lt;/code&gt; expects &lt;code&gt;callback&lt;/code&gt; - it means function's name without &lt;code&gt;()&lt;/code&gt; and arguments - so I use …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Fri, 10 Apr 2020 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-04-10:/python-tkinter-how-to-use-radiobutton-and-grid-to-create-clickable-calendar-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>radiobutton</category><category>grid</category><category>calendar</category><category>datetime</category><category>command</category></item><item><title>Python: Pobieranie po trzy elementy z jednej listy za pomocą `zip()`</title><link>https://blog.furas.pl/python-pobieranie-po-trzy-elementy-z-jednej-listy-za-pomoc%C4%85-zip.html</link><description>&lt;h2&gt;Pobieranie po trzy elementy z jednej listy&lt;/h2&gt;
&lt;p&gt;Python 3 wymaga użycia &lt;code&gt;list()&lt;/code&gt; w pewnych momentach.&lt;/p&gt;
&lt;p&gt;Za pomocą listy - nie dziala&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;A:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Za pomocą trzech &lt;code&gt;iter&lt;/code&gt; (iterowania) - nie działa&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;it_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="n"&gt;it_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 09 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-09:/python-pobieranie-po-trzy-elementy-z-jednej-listy-za-pomocą-zip.html</guid><category>Python</category><category>python</category></item><item><title>Scraping: How to use regular expression in BeautifulSoup to scrape Nobel Laureats from table in Wikipedia</title><link>https://blog.furas.pl/python-scraping-how-to-use-regular-expression-in-beautifulsoup-to-scrape-nobel-laureats-from-table-in-wikipedia-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/60593988/web-scraping-to-use-regular-expression-how-to-set-two-conditions-at-the-same-t/ --&gt;
&lt;!-- web-scraping: to use regular expression--How to set two conditions at the same time? --&gt;

&lt;p&gt;I wanted to try to use regex to get links to laureats in table on page &lt;a href="https://en.wikipedia.org/wiki/List_of_Nobel_Memorial_Prize_laureates_in_Economics"&gt;List of Nobel Memorial Prize laureates in Economics&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;First I tried to use &lt;code&gt;r'^/wiki/[A-Z][a-z]*_[A-Z][a-z]*$')&lt;/code&gt; because links looks like &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/wiki/Paul_Krugman
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;but this gets also links like&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/wiki/United_States …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 09 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-09:/python-scraping-how-to-use-regular-expression-in-beautifulsoup-to-scrape-nobel-laureats-from-table-in-wikipedia-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>beautifulsoup</category></item><item><title>Scraping: Jak użyć wyrażenia regularnego w BeautifulSoup aby pobrać Laureatów Nobla z tabeli w Wikipedii</title><link>https://blog.furas.pl/python-scraping-jak-uzyc-wyrazenia-regularnego-w-beautifulsoup-aby-pobrac-laureatow-nobla-z-tabeli-w-wikipedii.html</link><description>&lt;!-- https://stackoverflow.com/questions/60593988/web-scraping-to-use-regular-expression-how-to-set-two-conditions-at-the-same-t/ --&gt;
&lt;!-- web-scraping: to use regular expression--How to set two conditions at the same time? --&gt;

&lt;p&gt;Chciałem użyć wyrażenia regularnego do pobrania linków do laureatów w tabeli na stronie &lt;a href="https://en.wikipedia.org/wiki/List_of_Nobel_Memorial_Prize_laureates_in_Economics"&gt;List of Nobel Memorial Prize laureates in Economics&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Najpierw próbowałem użyć &lt;code&gt;r'^/wiki/[A-Z][a-z]*_[A-Z][a-z]*$')&lt;/code&gt; ponieważ wyglądało, że linki mają postać&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/wiki/Paul_Krugman
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ale okazało się, że to znajduje także linki postaci&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/wiki/United_States …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 09 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-09:/python-scraping-jak-uzyc-wyrazenia-regularnego-w-beautifulsoup-aby-pobrac-laureatow-nobla-z-tabeli-w-wikipedii.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>beautifulsoup</category></item><item><title>Python: Taking 3 elements from one list using `zip()`</title><link>https://blog.furas.pl/python-taking-3-elements-from-one-list-using-zip-gb.html</link><description>&lt;h2&gt;Taking 3 elements from one list&lt;/h2&gt;
&lt;p&gt;BTW: Python 3 needs soetime to use &lt;code&gt;list()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Using list - doesn't work&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;A:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Using three &lt;code&gt;iter()&lt;/code&gt; (iterating) - doesn't work&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;it_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="n"&gt;it_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;it_3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;iter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 09 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-09:/python-taking-3-elements-from-one-list-using-zip-gb.html</guid><category>Python</category><category>python</category></item><item><title>Tkinter: How to load, display and replace image on Label, Button or Canvas</title><link>https://blog.furas.pl/python-tkinter-how-to-load-display-and-replace-image-on-label-button-or-canvas-gb.html</link><description>&lt;div class="section" id="example-images"&gt;
&lt;h2&gt;Example images&lt;/h2&gt;
&lt;p&gt;At start few images which I will use in examples. You can download them to use in own examples.&lt;/p&gt;
&lt;img alt="python tkitner display image example 1" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-1.png" /&gt;
&lt;img alt="python tkitner display image example 1" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-2.png" /&gt;
&lt;img alt="python tkitner display image example 1" class="uk-align-center lazyload" src="/images/python/tkinter/2020.03.09/smile-3.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="reading-image"&gt;
&lt;h2&gt;Reading image&lt;/h2&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;Tkinter&lt;/tt&gt; uses &lt;a class="reference external" href="https://web.archive.org/web/20201112023229/http://effbot.org/tkinterbook/photoimage.htm"&gt;PhotoImage&lt;/a&gt; to read &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;GIF&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;PGM/PPM&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Older version didn't read &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt;. All versions still can't read &lt;tt class="docutils literal"&gt;JPG&lt;/tt&gt; or other formats.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PhotoImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 09 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-09:/python-tkinter-how-to-load-display-and-replace-image-on-label-button-or-canvas-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Flask: How to display image without saving in file using BytesIO and base64 string in url</title><link>https://blog.furas.pl/python-how-to-display-image-without-saving-in-file-using-bytesio-and-base64-string-in-url-gb.html</link><description>&lt;p&gt;To display image in web browser without saving image on disk
you can use &lt;tt class="docutils literal"&gt;BytesIO&lt;/tt&gt; to create &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file-like&lt;/span&gt;&lt;/tt&gt; object in memory RAM
which can be used like normal file to work with it without saving on disk.&lt;/p&gt;
&lt;p&gt;This example uses &lt;tt class="docutils literal"&gt;matplotlib&lt;/tt&gt; to create &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt; in memory&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 08 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-08:/python-how-to-display-image-without-saving-in-file-using-bytesio-and-base64-string-in-url-gb.html</guid><category>Python/Flask</category><category>python</category><category>flask</category><category>image</category><category>bytesio</category><category>base64</category></item><item><title>Flask: Jak wyświetlić obraz bez zapisywania go w pliku korzystając z BytesIO oraz obrazu w postaci stringu BASE64 w url</title><link>https://blog.furas.pl/python-jak-wyswietlic-obraz-bez-zapysywania-go-w-pliku-korzystajac-z-bytesio-oraz-obrazu-w-postaci-stringu-base64-w-url-gb.html</link><description>&lt;p&gt;Można użyć &lt;tt class="docutils literal"&gt;BytesIO&lt;/tt&gt; do stworzenia obiektu podobnego do pliku (&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file-like&lt;/span&gt; object&lt;/tt&gt;) ale trzymanego w pamięci RAM,
który może być użyty do działań na pliku obrazka bez zapisywania na dysku.&lt;/p&gt;
&lt;p&gt;Ten przykład używa &lt;tt class="docutils literal"&gt;matplotlib&lt;/tt&gt; do stworzenia  &lt;tt class="docutils literal"&gt;PNG&lt;/tt&gt; w pamięci&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_image&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;

    &lt;span class="c1"&gt;# genereate …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 08 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-08:/python-jak-wyswietlic-obraz-bez-zapysywania-go-w-pliku-korzystajac-z-bytesio-oraz-obrazu-w-postaci-stringu-base64-w-url-gb.html</guid><category>Python/Flask</category><category>python</category><category>flask</category><category>image</category><category>bytesio</category><category>base64</category></item><item><title>Scraping: How to get data from interactive plot created with HighCharts</title><link>https://blog.furas.pl/python-scraping-how-to-get-data-from-interactive-plot-created-with-highcharts-gb.html</link><description>&lt;!-- Web scrape coronavirus interactive plots --&gt;
&lt;!-- https://stackoverflow.com/questions/60556448/web-scrape-coronavirus-interactive-plots/60561149#60561149 --&gt;

&lt;!-- Can I scrape the raw data from highcharts.js? --&gt;
&lt;!-- https://stackoverflow.com/questions/39305877/can-i-scrape-the-raw-data-from-highcharts-js --&gt;

&lt;!-- https://github.com/CSSEGISandData/COVID-19 --&gt;
&lt;!-- https://www.worldometers.info/coronavirus/#countries --&gt;

&lt;p&gt;On page &lt;a href="https://www.worldometers.info/coronavirus/#countries"&gt;https://www.worldometers.info/coronavirus/#countries&lt;/a&gt; you can see &lt;code&gt;Highcharts&lt;/code&gt; with "Total Coronavirus Death". 
I tried to get data which it uses to display this chart.
It doesn't use AJAX to load data from other url so I couldn't read it directly. It also doesn't keep data in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 07 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-07:/python-scraping-how-to-get-data-from-interactive-plot-created-with-highcharts-gb.html</guid><category>Python</category><category>python</category><category>scraping</category></item><item><title>Scraping: Jak pobrać dane z interaktywnego wykresu stworzonego przez HighCharts</title><link>https://blog.furas.pl/python-scraping-jak-pobrac-dane-z-interaktywnego-wykresu-stworzonego-przez-highcharts.html</link><description>&lt;!-- Web scrape coronavirus interactive plots --&gt;
&lt;!-- https://stackoverflow.com/questions/60556448/web-scrape-coronavirus-interactive-plots/60561149#60561149 --&gt;

&lt;!-- Can I scrape the raw data from highcharts.js? --&gt;
&lt;!-- https://stackoverflow.com/questions/39305877/can-i-scrape-the-raw-data-from-highcharts-js --&gt;

&lt;!-- https://github.com/CSSEGISandData/COVID-19 --&gt;
&lt;!-- https://www.worldometers.info/coronavirus/#countries --&gt;

&lt;p&gt;Na stronie &lt;a href="https://www.worldometers.info/coronavirus/#countries"&gt;https://www.worldometers.info/coronavirus/#countries&lt;/a&gt; jest wykres &lt;code&gt;Highcharts&lt;/code&gt; z "Total Coronavirus Death". 
Chciałem pobrać dane, które zostały użyte do wyświetlenia tego wykresu.&lt;/p&gt;
&lt;p&gt;Wykres nie używa &lt;code&gt;AJAX&lt;/code&gt; do wczytywania danych z innego url więc nie mogłem pobrać je bezpośredion. Wykres nie trzyma ich także w oddzielnej zmiennej w …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 07 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-07:/python-scraping-jak-pobrac-dane-z-interaktywnego-wykresu-stworzonego-przez-highcharts.html</guid><category>Python</category><category>python</category><category>scraping</category></item><item><title>Selenium: How to close alert created by JavaScript</title><link>https://blog.furas.pl/python-selenium-how-to-close-alert-created-by-JavaScript-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/60549091/selenium-alert-handling-python/ --&gt;
&lt;!-- https://github.com/tourdedave/elemental-selenium-tips/tree/master/51-javascript-alerts --&gt;

&lt;p&gt;JavaScript can create three standard popup alerts: &lt;code&gt;alert()&lt;/code&gt;, &lt;code&gt;confirm()&lt;/code&gt; or &lt;code&gt;prompt()&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;all of them have button &lt;code&gt;OK&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;confirm()&lt;/code&gt; and &lt;code&gt;prompt()&lt;/code&gt; have button &lt;code&gt;CANCEL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompt()&lt;/code&gt; has text field&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;To press button &lt;code&gt;OK&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;alert&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accept&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# press OK&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;To press button &lt;code&gt;CANCEL&lt;/code&gt; (only in &lt;code&gt;confirm()&lt;/code&gt; and &lt;code&gt;prompt()&lt;/code&gt;)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;alert&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dismiss …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 07 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-07:/python-selenium-how-to-close-alert-created-by-JavaScript-gb.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Selenium: Jak zamknąć alert stworzony przez JavaScript</title><link>https://blog.furas.pl/python-selenium-jak-zamknac-alert-stworzony-przez-JavaScript-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/60549091/selenium-alert-handling-python/ --&gt;
&lt;!-- https://github.com/tourdedave/elemental-selenium-tips/tree/master/51-javascript-alerts --&gt;

&lt;p&gt;JavaScript może tworzyć trzy standarowe wyskakujące alerty: &lt;code&gt;alert()&lt;/code&gt;, &lt;code&gt;confirm()&lt;/code&gt; lub &lt;code&gt;prompt()&lt;/code&gt;. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;wszystkie z nich mają przycisk &lt;code&gt;OK&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;confirm()&lt;/code&gt; i &lt;code&gt;prompt()&lt;/code&gt; mają przycisk &lt;code&gt;CANCEL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompt()&lt;/code&gt; ma pole tekstowe&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Aby wcisnąć &lt;code&gt;OK&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;alert&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accept&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;   &lt;span class="c1"&gt;# press &amp;#39;OK&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Aby wcisnąć &lt;code&gt;CANCEL&lt;/code&gt; (tylko w &lt;code&gt;confirm()&lt;/code&gt; i &lt;code&gt;prompt()&lt;/code&gt;)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;alert&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dismiss&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;   &lt;span class="c1"&gt;# press &amp;#39;Cancel …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 07 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-07:/python-selenium-jak-zamknac-alert-stworzony-przez-JavaScript-gb.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Python: Dlaczego `requests` niepoprawnie dekoduje tekst zamiast użyć UTF-8</title><link>https://blog.furas.pl/python-dlaczego-requests-niepoprawnie-dekoduje-tekst-zamiast-uzyc-utf8.html</link><description>&lt;p&gt;Czasami &lt;a href="https://requests.readthedocs.io/en/master/"&gt;requests&lt;/a&gt; niepoprawnie dekoduje tekst w &lt;code&gt;response.text&lt;/code&gt; - używa &lt;code&gt;ISO-8859-1&lt;/code&gt; (&lt;code&gt;Latin-1&lt;/code&gt;) zamiast &lt;code&gt;UTF-8&lt;/code&gt; 
nawet jeśli w HTML jest &lt;code&gt;&amp;lt;meta charset="uft-8"&amp;gt;&lt;/code&gt; lub &lt;code&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Można to zobaczyć w &lt;code&gt;response.headers['content-type']&lt;/code&gt; oraz &lt;code&gt;response.encoding&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Problem jest ponieważ on nie używa &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; ale nagłówka &lt;code&gt;Content-Type …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Tue, 03 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-03:/python-dlaczego-requests-niepoprawnie-dekoduje-tekst-zamiast-uzyc-utf8.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Python: How to change name when compressing to Zip file or uncompressing from Zip file.</title><link>https://blog.furas.pl/python-how-to-change-name-when-compressing-to-zip-file-or-uncompressing-from-zip-file-gb.html</link><description>&lt;h1&gt;Compressing with new name&lt;/h1&gt;
&lt;p&gt;Sometimes we want to change name of compressed file or put it in subfolder in zip file.&lt;/p&gt;
&lt;p&gt;Function &lt;code&gt;zipfile.write()&lt;/code&gt; can get new name which will be used inside zip file&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;folder_on_disk/name_on_disk&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;folder_in_zip_file/name_in_zip_file&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Example &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;zipfile&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zipfile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ZipFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;output.zip …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Tue, 03 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-03:/python-how-to-change-name-when-compressing-to-zip-file-or-uncompressing-from-zip-file-gb.html</guid><category>Python</category><category>python</category></item><item><title>Python: Jak zmienić nazwę pliku podczas kompresowania do pliku Zip lub rozkompresowywania z pliku Zip.</title><link>https://blog.furas.pl/python-jak-zmienic-nazwe-pliku-podczas-kompresowanie-do-pliku-zip-lub-rozkompresowywania-z-pliku-zip.html</link><description>&lt;h1&gt;Kompresowanie z nową nazwą&lt;/h1&gt;
&lt;p&gt;Czasami chcemy zmienić nazwa kompresowanego pliku lub umieścić w podkatalogu w pliku zip.&lt;/p&gt;
&lt;p&gt;Funkcja &lt;code&gt;zipfile.write()&lt;/code&gt; może przyjąć nową nazwę, która będzie użyta wewntrz pliku zip.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;folder_on_disk/name_on_disk&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;folder_in_zip_file/name_in_zip_file&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Przykład&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;zipfile&lt;/span&gt;

&lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;zipfile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ZipFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;output.zip&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;images/image.gif&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;new_folder …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Tue, 03 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-03:/python-jak-zmienic-nazwe-pliku-podczas-kompresowanie-do-pliku-zip-lub-rozkompresowywania-z-pliku-zip.html</guid><category>Python</category><category>python</category></item><item><title>Python: Why `requests` incorrectly decodes text instead of UTF-8</title><link>https://blog.furas.pl/python-why-requests-incorrectly-decodes-text-instead-of-utf8-gb.html</link><description>&lt;p&gt;Sometimes &lt;a href="https://requests.readthedocs.io/en/master/"&gt;requests&lt;/a&gt; incorrectly decodes text in &lt;code&gt;response.text&lt;/code&gt; - it uses &lt;code&gt;ISO-8859-1&lt;/code&gt; (&lt;code&gt;Latin-1&lt;/code&gt;) instead of &lt;code&gt;UTF-8&lt;/code&gt; 
event if there is &lt;code&gt;&amp;lt;meta charset="uft-8"&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;&lt;/code&gt; in HTML.&lt;/p&gt;
&lt;p&gt;Problem is it doesn't uses &lt;code&gt;&amp;lt;meta&amp;gt;&lt;/code&gt; but header &lt;code&gt;Content-Type&lt;/code&gt; which usually has value &lt;code&gt;text/html; charset=UTF-8 …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Tue, 03 Mar 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-03-03:/python-why-requests-incorrectly-decodes-text-instead-of-utf8-gb.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Tkinter: How to create popup Window or Messagebox</title><link>https://blog.furas.pl/python-tkinter-how-to-create-popup-window-or-messagebox-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/41946222/how-do-i-create-a-popup-window-in-tkinter --&gt;
&lt;!-- How do I create a popup window in tkinter? --&gt;

&lt;p&gt;This example shows how to popup &lt;code&gt;Toplevel&lt;/code&gt; window or &lt;code&gt;Messagebox&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Second window uses &lt;code&gt;Toplevel&lt;/code&gt; instead of &lt;code&gt;Tk&lt;/code&gt; and it doesn't need &lt;code&gt;mainloop&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;tkinter.messagebox&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;showinfo&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;popup_window&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Toplevel&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Thu, 27 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-27:/python-tkinter-how-to-create-popup-window-or-messagebox-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Jak stworzyć wyskakujące okno lub Messagebox</title><link>https://blog.furas.pl/python-tkinter-jak-stworzy%C4%87-wyskakuj%C4%85ce-okno-lub-messagebox.html</link><description>&lt;!-- https://stackoverflow.com/questions/41946222/how-do-i-create-a-popup-window-in-tkinter --&gt;
&lt;!-- How do I create a popup window in tkinter? --&gt;

&lt;p&gt;Ten przykład pokazuje jak pokazać okno &lt;code&gt;Toplevel&lt;/code&gt; lub &lt;code&gt;Messagebox&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Drugie okno używa &lt;code&gt;Toplevel&lt;/code&gt; zamiast &lt;code&gt;Tk&lt;/code&gt; i nie wymaga &lt;code&gt;mainloop&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;tkinter.messagebox&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;showinfo&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;popup_window&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Toplevel&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;button_close …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Thu, 27 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-27:/python-tkinter-jak-stworzyć-wyskakujące-okno-lub-messagebox.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>PyGame: Drag object on screen using mouse</title><link>https://blog.furas.pl/python-pygame-drag-object-on-screen-using-mouse-gb.html</link><description>&lt;p&gt;First you have to create some object to drag and variable which will keep information if object is draged&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;rectangle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;176&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;134&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;rectangle_draging&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You have to use&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MOUSEBUTTONDOWN&lt;/code&gt; to check if object was clicked and set &lt;code&gt;drag = True&lt;/code&gt; and remember offset between mouse position …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-pygame-drag-object-on-screen-using-mouse-gb.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyGame: Draw image on screen</title><link>https://blog.furas.pl/python-pygame-draw-image-on-screen-gb.html</link><description>&lt;p&gt;First you have to load image&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;image.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Next you have to send image to buffer (which represents screen/window surface)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# draw in buffer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And finally you send buffer on screen/window (after you draw all elements in buffer)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-pygame-draw-image-on-screen-gb.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyGame: Przeciąganie obiektu po ekranie za pomocą myszy</title><link>https://blog.furas.pl/python-pygame-przeciaganie-obiektu-po-ekranie-za-pomoca-myszy.html</link><description>&lt;p&gt;Najpierw trzeba stworzyć obiekt do przesuwania (jego wielkość i pozycja jest w &lt;code&gt;Rect()&lt;/code&gt;) oraz zmienną do przechowywania informacji czy obiekt jest przeciągany&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;rectangle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;176&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;134&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;rectangle_draging&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Następnie należy użyć:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MOUSEBUTTONDOWN&lt;/code&gt; aby sprawdzić czy obiekt został kliknięty i ustawić &lt;code&gt;drag = True&lt;/code&gt; i zapamiętać offset pomiędzy …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-pygame-przeciaganie-obiektu-po-ekranie-za-pomoca-myszy.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyGame: Wyświetlenie obrazka na ekranie</title><link>https://blog.furas.pl/python-pygame-wyswietlenie-obrazka-na-ekranie.html</link><description>&lt;p&gt;Najpierw trzeba wczytać obrazek&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;image.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Następnie trzeba wysłać obrazek do bufora (który reprezentuje powierzchnię ekranu/okna)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;  &lt;span class="c1"&gt;# draw in buffer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Na koniec należy wysłać bufor na ekran/okno (po narysowaniu wszystkich elementów w buforze)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# send buffer on screen …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-pygame-wyswietlenie-obrazka-na-ekranie.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>Socket: send and receive at the same time</title><link>https://blog.furas.pl/python-socket-send-and-receive-at-the-same-time-gb.html</link><description>&lt;p&gt;One socket may send and receive at the same time but one thread has to only send data and other thread has to only receive data. 
This way &lt;code&gt;send()&lt;/code&gt; doesn't have to wait for the end of &lt;code&gt;recv()&lt;/code&gt; and &lt;code&gt;recv()&lt;/code&gt; doesn't have to wait for the end of &lt;code&gt;send()&lt;/code&gt; so …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-socket-send-and-receive-at-the-same-time-gb.html</guid><category>Python</category><category>python</category><category>socket</category></item><item><title>Socket: wysyłanie i odbieranie danych w tym samym czasie</title><link>https://blog.furas.pl/python-socket-wysylanie-i-odbieranie-danych-w-tym-samym-czasie.html</link><description>&lt;p&gt;Jedno gniazdo (socket) może wysyłać i odbierać w tym samym czasie ale jeden wątek musi tylko obierać dane a drugi tylko wysyłać dane.
W ten sposób &lt;code&gt;send()&lt;/code&gt; nie musi czekać na zakończenie &lt;code&gt;recv()&lt;/code&gt; a &lt;code&gt;recv()&lt;/code&gt; nie musi czekać na zakończenie &lt;code&gt;send()&lt;/code&gt; więc nie blokują się wzajenie.&lt;/p&gt;
&lt;p&gt;Bez użycia wątków było …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-socket-wysylanie-i-odbieranie-danych-w-tym-samym-czasie.html</guid><category>Python</category><category>python</category><category>socket</category></item><item><title>Tkitner: How to display Progressbar with different speed</title><link>https://blog.furas.pl/python-tkinter-how-to-display-progressbar-with-different-speed-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/60347889/tkinter-progressbar-movement-speed-change --&gt;

&lt;p&gt;If &lt;code&gt;Progressbar&lt;/code&gt; in &lt;code&gt;'indeterminate'&lt;/code&gt; mode run too fast or too slow then 
you can use &lt;code&gt;after(milliseconds, function_name)&lt;/code&gt; to run periodically own function 
which will use &lt;code&gt;step()&lt;/code&gt; to change value in &lt;code&gt;ProgressBar&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;If you use different &lt;code&gt;milliseconds&lt;/code&gt; or different value in &lt;code&gt;step()&lt;/code&gt; then it will move with different speed.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-tkinter-how-to-display-progressbar-with-different-speed-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkitner: Jak wyświetlać Progressbar z inną prędkością</title><link>https://blog.furas.pl/python-tkinter-jak-wyswietlac-progressbar-z-inna-predkoscia.html</link><description>&lt;!-- https://stackoverflow.com/questions/60347889/tkinter-progressbar-movement-speed-change --&gt;

&lt;p&gt;If &lt;code&gt;Progressbar&lt;/code&gt; in &lt;code&gt;'indeterminate'&lt;/code&gt; mode run too fast or too slow then 
you can use &lt;code&gt;after(milliseconds, function_name)&lt;/code&gt; to run periodically own function 
which will use &lt;code&gt;step()&lt;/code&gt; to change value in &lt;code&gt;ProgressBar&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;If you use different &lt;code&gt;milliseconds&lt;/code&gt; or different value in &lt;code&gt;step()&lt;/code&gt; then it will move with different speed.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-tkinter-jak-wyswietlac-progressbar-z-inna-predkoscia.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: How to display Listbox with Scrollbar</title><link>https://blog.furas.pl/python-tkitner-how-to-display-listbox-with-scrollbar-gb.html</link><description>&lt;p&gt;It adds &lt;code&gt;Listbox&lt;/code&gt; on left side and &lt;code&gt;Scrollbar&lt;/code&gt; on right side.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Scrollbar&lt;/code&gt; uses &lt;code&gt;command=listbox.yview&lt;/code&gt; to move &lt;code&gt;Listbox&lt;/code&gt; content when &lt;code&gt;Scrollbar&lt;/code&gt; is moved.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Listbox&lt;/code&gt; uses &lt;code&gt;yscrollcommand=scrollbar.set&lt;/code&gt; to move &lt;code&gt;Scrollbar&lt;/code&gt; when element in &lt;code&gt;Listbox&lt;/code&gt; is added or removed or content is moved by key or mouse wheel.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-tkitner-how-to-display-listbox-with-scrollbar-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Jak wyświetlić Listbox z Scrollbar</title><link>https://blog.furas.pl/python-tkitner-jak-wy%C5%9Bwietli%C4%87-listbox-z-scrollbar.html</link><description>&lt;p&gt;Kod dodaje &lt;code&gt;Listbox&lt;/code&gt; z lewej strony i &lt;code&gt;Scrollbar&lt;/code&gt; z prawej strony.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Scrollbar&lt;/code&gt; używa &lt;code&gt;command=listbox.yview&lt;/code&gt; aby przesuwać zawartość &lt;code&gt;Listbox&lt;/code&gt; gdy przesuwany jest &lt;code&gt;Scrollbar&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Listbox&lt;/code&gt; używa &lt;code&gt;yscrollcommand=scrollbar.set&lt;/code&gt; aby przesuwać zawartość &lt;code&gt;Scrollbar&lt;/code&gt; gdy element w &lt;code&gt;Listbox&lt;/code&gt; jest dodawany lub odejowany 
oraz gdy zawartość jest przesuwana za pomocą klawiszy lub …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 24 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-24:/python-tkitner-jak-wyświetlić-listbox-z-scrollbar.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Update image on Canvas with Button click</title><link>https://blog.furas.pl/python-tkinter-update-image-on-canvas-with-button-click-gb.html</link><description>&lt;h2&gt;Example images&lt;/h2&gt;
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/tkinter/ball1.gif" alt="python"/&gt;
&lt;img class="lazyload" data-src="/images/python/tkinter/ball2.gif" alt="python"/&gt;
&lt;img class="lazyload" data-src="/images/python/tkinter/ball3.gif" alt="python"/&gt;
&lt;/div&gt;

&lt;h2&gt;Change only once&lt;/h2&gt;
&lt;p&gt;Create two &lt;code&gt;ImagePhoto&lt;/code&gt; instances&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;image1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PhotoImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ball1.gif&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;image2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PhotoImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ball2.gif&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Put first image on &lt;code&gt;Canvas&lt;/code&gt; and keep its &lt;code&gt;ID&lt;/code&gt; (&lt;code&gt;image_id&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;image_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;anchor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nw&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;image1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;(Normally it would set center of image in position (0 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sun, 23 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-23:/python-tkinter-update-image-on-canvas-with-button-click-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Zmiana obrazka na Canvas po wciśnięciu Button'a</title><link>https://blog.furas.pl/python-tkinter-zmiana-ograzka-na-canvas-po-wcisnieciu-button.html</link><description>&lt;h2&gt;Przykładowe obrazki&lt;/h2&gt;
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/tkinter/ball1.gif" alt="python"/&gt;
&lt;img class="lazyload" data-src="/images/python/tkinter/ball2.gif" alt="python"/&gt;
&lt;img class="lazyload" data-src="/images/python/tkinter/ball3.gif" alt="python"/&gt;
&lt;/div&gt;

&lt;h2&gt;Zmiana tylko raz&lt;/h2&gt;
&lt;p&gt;Utwórz dwa &lt;code&gt;ImagePhoto&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;image1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PhotoImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ball1.gif&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;image2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PhotoImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ball2.gif&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Umieść pierszy obrazek na &lt;code&gt;Canvas&lt;/code&gt; i zachowaj jego &lt;code&gt;ID&lt;/code&gt; (&lt;code&gt;image_id&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;image_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;anchor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nw&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;image1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;(Normalnie by ustawiło środek obrazka w punkcie (0,0) ale używając …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sun, 23 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-23:/python-tkinter-zmiana-ograzka-na-canvas-po-wcisnieciu-button.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Pillow: How to split and merge channels in RGB image using Python</title><link>https://blog.furas.pl/python-pillow-how-to-split-and-merge-channels-in-image-using-python-gb-gb.html</link><description>&lt;p&gt;You have &lt;a href="https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.split"&gt;split()&lt;/a&gt; and &lt;a href="https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.merge"&gt;merge()&lt;/a&gt; to work with channels.&lt;/p&gt;
&lt;p&gt;You can also use &lt;a href="https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.getchannel"&gt;getchannel()&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;

&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;images/image.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#r = img.getchannel(0)&lt;/span&gt;
&lt;span class="c1"&gt;#g = img.getchannel(1)&lt;/span&gt;
&lt;span class="c1"&gt;#b = img.getchannel(2)&lt;/span&gt;

&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;RGB&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-17:/python-pillow-how-to-split-and-merge-channels-in-image-using-python-gb-gb.html</guid><category>Python/Pillow</category><category>python</category><category>pillow</category></item><item><title>Pillow: Jak rozdzielić i połączyć kanały w obrazku RGB używając Pythona</title><link>https://blog.furas.pl/python-pillow-jak-rozdzielic-i-polaczyc-kanaly-w-obrazku-rgb-uzywajac-pythona-pl.html</link><description>&lt;p&gt;Można użyć &lt;a href="https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.split"&gt;split()&lt;/a&gt; in &lt;a href="https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.merge"&gt;merge()&lt;/a&gt; aby działać z kanałami.&lt;/p&gt;
&lt;p&gt;Można także użyć &lt;a href="https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.getchannel"&gt;getchannel()&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;

&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;images/image.jpg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#r = img.getchannel(0)&lt;/span&gt;
&lt;span class="c1"&gt;#g = img.getchannel(1)&lt;/span&gt;
&lt;span class="c1"&gt;#b = img.getchannel(2)&lt;/span&gt;

&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;RGB&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Można …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-17:/python-pillow-jak-rozdzielic-i-polaczyc-kanaly-w-obrazku-rgb-uzywajac-pythona-pl.html</guid><category>Python/Pillow</category><category>python</category><category>pillow</category></item><item><title>Python: Adding parameters to URL using urllib</title><link>https://blog.furas.pl/python-adding-parameters-to-url-using-urllib-gb-gb.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://stackoverflow.com/search&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;lang&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;en&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;tag&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;python tkinter&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;?&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Result:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;http://stackoverflow.com/search?lang=en&amp;amp;tag=python+tkinter
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Sometimes you have to keep some original chars and then you can use parameter &lt;code&gt;safe&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-adding-parameters-to-url-using-urllib-gb-gb.html</guid><category>Python</category><category>python</category><category>url</category></item><item><title>Flask: Example how to send zip file downloaded from other page.</title><link>https://blog.furas.pl/python-flask-example-how-to-send-zip-file-downloaded-from-other-page-gb-gb.html</link><description>&lt;p&gt;Example shows how to use &lt;code&gt;BytesIO&lt;/code&gt; to download &lt;code&gt;zip&lt;/code&gt; file from other page and send it to web browser without saving on disk.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;send_file&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;# get file from other page&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://github.com …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-flask-example-how-to-send-zip-file-downloaded-from-other-page-gb-gb.html</guid><category>Python/Flask</category><category>python</category><category>flask</category></item><item><title>Flask: Przykład jak wysłać plik zip ściągnięty z innej strony.</title><link>https://blog.furas.pl/python-flask-przyklad-jak-wyslac-plik-zip-sciagniety-z-innej-strony-pl.html</link><description>&lt;p&gt;Przykład pokazuje jak z użycien &lt;code&gt;BytesIO&lt;/code&gt; ściągnąć plik &lt;code&gt;zip&lt;/code&gt; z innej strony i wysłać go do przeglądarki bez zapisywania na dysku.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;send_file&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;io&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="c1"&gt;# pobranie pliku z innej strony&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://github.com/furas/mate-python-applets …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-flask-przyklad-jak-wyslac-plik-zip-sciagniety-z-innej-strony-pl.html</guid><category>Python/Flask</category><category>python</category><category>flask</category></item><item><title>Python: use cv2 to create movie from images</title><link>https://blog.furas.pl/python-use-cv2-to-create-movie-from-images-gb-gb.html</link><description>&lt;p&gt;Simple script which gets as argument pattern like &lt;code&gt;path/*.jpg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It uses pattern (instead path) with &lt;code&gt;glob.glob()&lt;/code&gt; to get filenames, and uses &lt;code&gt;cv2&lt;/code&gt; to load images, resize them save as frame in video.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;glob&lt;/span&gt;

&lt;span class="c1"&gt;# for test only &lt;/span&gt;
&lt;span class="c1"&gt;#sys.argv += [&amp;#39;images/dot-*.jpg&amp;#39;]&lt;/span&gt;

&lt;span class="c1"&gt;# get arguments&lt;/span&gt;
&lt;span class="n"&gt;pattern&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-use-cv2-to-create-movie-from-images-gb-gb.html</guid><category>Python</category><category>python</category><category>cv2</category></item><item><title>Python: Use pillow to create image with thumbnails in rows and columns</title><link>https://blog.furas.pl/python-use-pillow-to-create-image-with-tumbnails-in-rows-and-columns-gb-gb.html</link><description>&lt;p&gt;Simple script which gets as arguments pattern like &lt;code&gt;path/*.jpg&lt;/code&gt;, number of rows, number of columns and create grid with images (thumbnails 100x100 pixels)&lt;/p&gt;
&lt;p&gt;It uses pattern (instead path) with &lt;code&gt;glob.glob()&lt;/code&gt; to get filenames, and &lt;code&gt;pillow&lt;/code&gt; to load images, resize them and paste on output image as thumbnails in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-use-pillow-to-create-image-with-tumbnails-in-rows-and-columns-gb-gb.html</guid><category>Python</category><category>python</category><category>pillow</category></item><item><title>Python: Użycie cv2 do stworzenia filmu z obrazków</title><link>https://blog.furas.pl/python-uzycie-cv2-do-stworzenia-filmu-z-obrazkow-pl.html</link><description>&lt;p&gt;Prosty skrypt, który bierze jako argument wzorzec typu &lt;code&gt;path/*.jpg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Skrypt używa wzorca (zamiast nazwy katalogu) z funkcją &lt;code&gt;glob.glob()&lt;/code&gt; aby pobrać nazwy plików, a następnie używa &lt;code&gt;cv2&lt;/code&gt; aby wczytać obrazki, 
pomniejszyć je do odpowiedniej wielkości i zapisać jako klatkę w filmie.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;glob&lt;/span&gt;

&lt;span class="c1"&gt;# for test only &lt;/span&gt;
&lt;span class="c1"&gt;#sys …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-uzycie-cv2-do-stworzenia-filmu-z-obrazkow-pl.html</guid><category>Python</category><category>python</category><category>cv2</category></item><item><title>Python: Użycie pillow do stworzenia obrazku z miniaturkami w wierszach i kolumnach</title><link>https://blog.furas.pl/python-uzycie-pillow-do-stworzenia-obrazka-z-miniaturkami-w-wierszach-i-kolumnach-pl.html</link><description>&lt;p&gt;Prosty skrypt, który bierze jako argument wzorzec typu &lt;code&gt;path/*.jpg&lt;/code&gt;, ilośc wierszy, ilośc kolumn i tworzy siatkę z obrazkami (miniaturkami 100x100 pikseli)&lt;/p&gt;
&lt;p&gt;Skrypt używa wzorca (zamiast nazwy katalogu) z funkcją &lt;code&gt;glob.glob()&lt;/code&gt; aby pobrać nazwy plików, a następnie używa &lt;code&gt;pillow&lt;/code&gt; aby wczytać obrazki, 
zmiejszyć je i wstawi na wynikowy obrazek …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 15 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-15:/python-uzycie-pillow-do-stworzenia-obrazka-z-miniaturkami-w-wierszach-i-kolumnach-pl.html</guid><category>Python</category><category>python</category><category>pillow</category></item><item><title>PyGame: Transparent circle or other shape</title><link>https://blog.furas.pl/python-pygame-transparent-circle-or-other-shape-gb.html</link><description>&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/python-turtle-kolorowy-okrag-1.png" alt="python"/&gt;
&lt;/div&gt;

&lt;p&gt;&lt;code&gt;pygame.draw.circle()&lt;/code&gt; and other method in &lt;code&gt;pygame.draw&lt;/code&gt; don't use alpha channel to draw 
so you have to draw it on new &lt;code&gt;Surface()&lt;/code&gt; (to get it as bitmap) and add &lt;code&gt;alpha&lt;/code&gt; and &lt;code&gt;colorkey&lt;/code&gt; to &lt;code&gt;Surface()&lt;/code&gt; 
before you blit this surface to screen.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pygame&lt;/span&gt;

&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;screen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Thu, 13 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-13:/python-pygame-transparent-circle-or-other-shape-gb.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>Python pomijanie encodowania pewnych znaków w urlencode()</title><link>https://blog.furas.pl/python-requests-pomijanie-encodowana%C4%87-pewnych-znakow-w-urlencode-pl.html</link><description>&lt;p&gt;Czasami API oczekuje pewnych wartości jako normalny tekst a nie zakodowany ale &lt;code&gt;urlencode&lt;/code&gt; zamienia go.
W takiej sytuacji można użyć &lt;code&gt;safe="znaki"&lt;/code&gt; aby pominąć kodowanie dla tych znaków.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;

&lt;span class="n"&gt;parameters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;location&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;22.303940,114.170372&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;safe&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Wynik:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;location …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Wed, 12 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-12:/python-requests-pomijanie-encodowanać-pewnych-znakow-w-urlencode-pl.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Python skip encoding some chars in urlencode()</title><link>https://blog.furas.pl/python-requests-skip-encoding-some-chars-in-urlencode-gb-gb.html</link><description>&lt;p&gt;Sometimes API expects some values as normal char, not encoded, but &lt;code&gt;urlencode&lt;/code&gt; converts it. 
In this situation you can use &lt;code&gt;safe="chars"&lt;/code&gt; to skip encoding these chars.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;

&lt;span class="n"&gt;parameters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;location&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;22.303940,114.170372&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlencode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameters&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;safe&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Result:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;location=22 …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Wed, 12 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-12:/python-requests-skip-encoding-some-chars-in-urlencode-gb-gb.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Flask: play sound after click link but before reload page</title><link>https://blog.furas.pl/python-flask-play-sound-after-click-link-but-before-reload-page-gb.html</link><description>&lt;p&gt;When you click link then web browser reloads page and it removes from memory code which should play sound.&lt;/p&gt;
&lt;p&gt;You would have to catch link&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;javascript:void(0);&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;onclick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;sound(&amp;#39;{{item}}&amp;#39;)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;JAVASCRIPT LINK&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;play sound and redirect/reload page after sound.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;audio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 11 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-11:/python-flask-play-sound-after-click-link-but-before-reload-page-gb.html</guid><category>Python/Flask</category><category>python</category><category>flask</category></item><item><title>Flask: Sum values in form[GB]</title><link>https://blog.furas.pl/python-flask-sum-values-in-form-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/60171695/how-can-i-sum-values-from-a-form-in-python-flask/60172173#60172173 --&gt;

&lt;p&gt;It uses the same function to render empty form and later to get values from form, calculate sum and render page with results.&lt;/p&gt;
&lt;p&gt;It uses &lt;code&gt;request.form&lt;/code&gt; to get values from form. Because &lt;code&gt;inputs&lt;/code&gt; have the same &lt;code&gt;name&lt;/code&gt; so it use &lt;code&gt;.getlist&lt;/code&gt; to get all values.&lt;/p&gt;
&lt;p&gt;Later it convert values …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 11 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-11:/python-flask-sum-values-in-form-gb.html</guid><category>Python/Flask</category><category>python</category><category>flask</category></item><item><title>Selenium: How to send clipboard to field in browser</title><link>https://blog.furas.pl/python-selenium-send-clipboard-to-field-in-browser-gb-gb.html</link><description>&lt;p&gt;When you find input field on page then you can send &lt;code&gt;Ctrl+V&lt;/code&gt; to send text from clipboard to this field.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.keys&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Keys&lt;/span&gt; 

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://google.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;q&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Keys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CONTROL&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;v&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#item …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 11 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-11:/python-selenium-send-clipboard-to-field-in-browser-gb-gb.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Selenium: Wysłanie zawartości schowka do pola w przeglądarce</title><link>https://blog.furas.pl/python-selenium-wyslanie-zawartosci-schowka-do-pola-w-przegladarce-pl.html</link><description>&lt;p&gt;Gdy znajdziesz pole tekstowe na stronie wtedy możesz wysłać &lt;code&gt;Ctrl+V&lt;/code&gt; aby wstawić tekst ze schowka do tego pola.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.keys&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Keys&lt;/span&gt; 

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://google.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;q&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Keys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CONTROL&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;v&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#item.send_keys(Keys …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 11 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-11:/python-selenium-wyslanie-zawartosci-schowka-do-pola-w-przegladarce-pl.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Python: problem to install gattlib on Linux Mint and Ubuntu [GB]</title><link>https://blog.furas.pl/python-problem%20to%20install-gattlib-on-linux-mint-and-ubuntu-gb.html</link><description>&lt;p&gt;It has problem because GCC tries to include &lt;code&gt;boost-python36.a&lt;/code&gt; (or &lt;code&gt;boost-python37.a&lt;/code&gt;) but system has only &lt;code&gt;boost-python3-py36.a&lt;/code&gt; (or &lt;code&gt;boost-python3-py37.a&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;You can check it using&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;locate boost-python3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;or using &lt;code&gt;find&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;(First you may have to install &lt;code&gt;apt install boost-python-dev&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Edit &lt;code&gt;setup.py&lt;/code&gt; on Ubuntu 18.04 and Linux …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 10 Feb 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-02-10:/python-problem to install-gattlib-on-linux-mint-and-ubuntu-gb.html</guid><category>Python</category><category>python</category></item><item><title>Alternative for Google Colab [GB]</title><link>https://blog.furas.pl/machine-learing-alternative-for-google-colab-gb.html</link><description>&lt;p&gt;Tools for remote Machine Learning and Deep Network - using GPU and TPU:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://colab.research.google.com/"&gt;Google Colab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/sagemaker/"&gt;Amazone SageMaker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ibm.com/pl-pl/cloud/watson-studio"&gt;IBM Watson Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notebooks.azure.com/"&gt;Microsoft Azure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Similar tools:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jupyter.org/"&gt;Jupyter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/"&gt;Kaggle&lt;/a&gt; (after creating account) &lt;/li&gt;
&lt;li&gt;&lt;a href="https://alpha.iodide.io/"&gt;iodide&lt;/a&gt; (Mozilla)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://databricks.com/"&gt;Databricks&lt;/a&gt; gives access to &lt;a href="https://databricks.com/try-databricks"&gt;PySpark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 27 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-27:/machine-learing-alternative-for-google-colab-gb.html</guid><category>ML</category><category>ml</category></item><item><title>Alternatywa dla Google Colab</title><link>https://blog.furas.pl/machine-learing-alternatywa-dla-google-colab-pl.html</link><description>&lt;p&gt;Narzędzia pozwalające na zdalne używanie Machine Learning i Deep Network - z użyciem GPU i TPU:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://colab.research.google.com/"&gt;Google Colab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/sagemaker/"&gt;Amazone SageMaker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ibm.com/pl-pl/cloud/watson-studio"&gt;IBM Watson Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notebooks.azure.com/"&gt;Microsoft Azure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pobodne narzędzia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jupyter.org/"&gt;Jupyter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.kaggle.com/"&gt;Kaggle&lt;/a&gt; (po założeniu konta) &lt;/li&gt;
&lt;li&gt;&lt;a href="https://alpha.iodide.io/"&gt;iodide&lt;/a&gt; (Mozilla)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Inne:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://databricks.com/"&gt;Databricks&lt;/a&gt; daje dostęp do &lt;a href="https://databricks.com/try-databricks"&gt;PySpark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 27 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-27:/machine-learing-alternatywa-dla-google-colab-pl.html</guid><category>ML</category><category>ml</category></item><item><title>Tkinter PandasTable Examples [GB]</title><link>https://blog.furas.pl/python-tkinter-pandastable-examples-gb.html</link><description>&lt;p&gt;It is few examples how to use &lt;code&gt;pandastable&lt;/code&gt; to create table in &lt;code&gt;tkinter&lt;/code&gt; with data from &lt;code&gt;pandas&lt;/code&gt; dataframe.&lt;/p&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;pip install pandastable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Dependencies&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;numpy&lt;/li&gt;
&lt;li&gt;pandas&lt;/li&gt;
&lt;li&gt;matplotlib&lt;/li&gt;
&lt;li&gt;numexpr&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional dependencies&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;statsmodels&lt;/li&gt;
&lt;li&gt;seaborn (requires scipy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Doc: &lt;a href="https://pandastable.readthedocs.io/"&gt;https://pandastable.readthedocs.io/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Standard Examples&lt;/h2&gt;
&lt;p&gt;In documentation you can find few &lt;a href="https://pandastable.readthedocs.io/en/latest/examples.html"&gt;examples&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Minimal Example&lt;/h2&gt;
&lt;p&gt;It …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Mon, 27 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-27:/python-tkinter-pandastable-examples-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>pandas</category></item><item><title>BeautifulSoup: How to get text from tag</title><link>https://blog.furas.pl/python-beautifulsoup-get-text-from-tag-gb.html</link><description>&lt;p&gt;There are different functions to get text from tag.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.text&lt;/code&gt; - all text from tag and subtags&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.string&lt;/code&gt; - only if there is no subtags&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.get_text(strip, separator)&lt;/code&gt; - you can remove whitespaces and add separators which can be used to split data into list.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BS …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-beautifulsoup-get-text-from-tag-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>beautifulsoup</category></item><item><title>BeautifulSoup: Jak pobrać tekst z tagu</title><link>https://blog.furas.pl/python-beautifulsoup-pobranie-tekstu-z-tagu.html</link><description>&lt;p&gt;Jest kilka róznych funkcji do pobierania tekstu z tagu.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.text&lt;/code&gt; - cały tekst z tagu i podtagów&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.string&lt;/code&gt; - tylko jeśli nie ma podtagów&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.get_text(strip, separator)&lt;/code&gt; - można usunąć białe znaki i dodać separator, który może być użyty do podzielenia na listę.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;lt;tag&amp;gt;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-beautifulsoup-pobranie-tekstu-z-tagu.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>beautifulsoup</category></item><item><title>PyGame Example: object bounces on border [GB]</title><link>https://blog.furas.pl/python-pygame-example-object-bounces-on-border-gb.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pygame&lt;/span&gt;

&lt;span class="c1"&gt;# --- constanst --- (UPPER_CASE_NAMES)&lt;/span&gt;

&lt;span class="n"&gt;RED&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;BLACK&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;WIDHT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;
&lt;span class="n"&gt;HEIGHT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;speed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_mode&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;WIDHT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HEIGHT&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;centery&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HEIGHT&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;

&lt;span class="n"&gt;clock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Clock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;running&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;running&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# - events -&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="ow"&gt;in …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-pygame-example-object-bounces-on-border-gb.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyGame Przykład: obiekt odbija się on krawędzi</title><link>https://blog.furas.pl/python-pygame-przyklad-obiekt-odbija-sie-od-krawedzi-pl.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pygame&lt;/span&gt;

&lt;span class="c1"&gt;# --- constanst --- (UPPER_CASE_NAMES)&lt;/span&gt;

&lt;span class="n"&gt;RED&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;BLACK&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;WIDHT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;
&lt;span class="n"&gt;HEIGHT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;speed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_mode&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;WIDHT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HEIGHT&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Rect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;centery&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HEIGHT&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;

&lt;span class="n"&gt;clock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Clock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;running&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;running&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# - events -&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="ow"&gt;in …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-pygame-przyklad-obiekt-odbija-sie-od-krawedzi-pl.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>Requests: use Imgur API to upload image[GB]</title><link>https://blog.furas.pl/python-requests-use-imgur-api-to-upload-image-gb.html</link><description>&lt;p&gt;First you have to create normal account on Imgur. &lt;/p&gt;
&lt;p&gt;After loging to normal account you can go to https://api.imgur.com/oauth2/addclient to register application.&lt;/p&gt;
&lt;p&gt;It needs application name and email. Type of authorization depends on how you will use it.&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/requests/imgur-api/imgur-small-1.jpg" alt="python requests - imgur API - 1"/&gt;
&lt;/div&gt;

&lt;p&gt;You should get API keys&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/requests/imgur-api/imgur-small-2.jpg" alt="python requests - imgur API - 2"/&gt;
&lt;/div&gt;

&lt;p&gt;Which you …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-requests-use-imgur-api-to-upload-image-gb.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Requests: użycie Imgur API do załadowania zdjęcia</title><link>https://blog.furas.pl/python-requests-uzycie-imgur-api-do-zaladowania-obrazka-pl.html</link><description>&lt;p&gt;Najpierw trzeba założyć normalne konto na Imgur. &lt;/p&gt;
&lt;p&gt;Po zalogowaniu na normalnym konice należy przejść do https://api.imgur.com/oauth2/addclient aby zarejestrować aplikację.&lt;/p&gt;
&lt;p&gt;Wymagana jest nazwa i email. Typ autoryzacji zależy jak będzie wykorzystywana aplikacja.&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/requests/imgur-api/imgur-small-1.jpg" alt="python requests - imgur API - 1"/&gt;
&lt;/div&gt;

&lt;p&gt;Po rejestracji powinno podać klucze do API&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/requests/imgur-api/imgur-small-2.jpg" alt="python requests - imgur API - 2"/&gt;
&lt;/div&gt;

&lt;p&gt;Klucze API można wykorzystać do użycia API …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-requests-uzycie-imgur-api-do-zaladowania-obrazka-pl.html</guid><category>Python/Requests</category><category>python</category><category>requests</category></item><item><title>Tkinter Example: use after() to add to Listbox with Scrollbar [GB]</title><link>https://blog.furas.pl/python-tkinter-example-use-after-to-add-to-listbox-with-scrollbar-gb.html</link><description>&lt;p&gt;It shows how to create &lt;code&gt;Listbox&lt;/code&gt; with &lt;code&gt;Scrollbar&lt;/code&gt; (on right side) and how to use &lt;code&gt;after()&lt;/code&gt; to insert new element on list every 1000ms (1s).&lt;/p&gt;
&lt;p&gt;New element doesn't need &lt;code&gt;'\n'&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_line&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;listbox&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;end&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;%H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-example-use-after-to-add-to-listbox-with-scrollbar-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter Example: use Checkbutton to start and stop timer [GB]</title><link>https://blog.furas.pl/python-tkinter-example-use-checkbutton-to-start-stop-timer-gb.html</link><description>&lt;p&gt;When you select &lt;code&gt;Checkbutton&lt;/code&gt; then it start timer (but without displayint it). &lt;/p&gt;
&lt;p&gt;When you deselect &lt;code&gt;Checkbutton&lt;/code&gt; then it stop timer and display time cumulated with previous time&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;time_start&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cb_var&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;time_start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-example-use-checkbutton-to-start-stop-timer-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter Example: use `eval()` to calculate equation [GB]</title><link>https://blog.furas.pl/python-tkinter-example-use-eval-to-calculate-equation-gb.html</link><description>&lt;p&gt;It shows how to get values and equation from &lt;code&gt;Entry&lt;/code&gt; and use &lt;code&gt;eval()&lt;/code&gt; to calculate it.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;

    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry_x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; 
    &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry_y&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;equation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;z_var&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;{0:.3f}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;z_var&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StringVar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-example-use-eval-to-calculate-equation-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter Example: use many Checkbuttons with IntVar or StringVars [GB]</title><link>https://blog.furas.pl/python-tkinter-example-use-many-checkbuttons-with-intvar-or-stringvars-gb.html</link><description>&lt;p&gt;It uses dictionary to keep many &lt;code&gt;IntVar&lt;/code&gt; which are used with &lt;code&gt;Checkbutton&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;confirm&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_int_vars&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;pizza&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;breadsticks&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wings&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;CocaCola&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;brownie&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;all_int_vars&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IntVar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-example-use-many-checkbuttons-with-intvar-or-stringvars-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: how to use pynput keyboard listener together with tkinter GUI</title><link>https://blog.furas.pl/python-tkinter-example-use-pynput-keyboard-listener-gb.html</link><description>&lt;p&gt;In documentation you can see example for pynput &lt;a href="https://pynput.readthedocs.io/en/latest/keyboard.html#monitoring-the-keyboard"&gt;Monitoring The keyboard&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;which blocks code but you can put code between lines&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# ... your code ...&lt;/span&gt;

    &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;or you can run it …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-example-use-pynput-keyboard-listener-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>pynput</category></item><item><title>Tkinter Przykład: użycie after() aby dodać do Listbox z Scrollbar</title><link>https://blog.furas.pl/python-tkinter-przyklad-uzycia-after-aby-dodac-do-listbox-ze-scrollbar-pl.html</link><description>&lt;p&gt;Przykład pokazuje jak stworzyć &lt;code&gt;Listbox&lt;/code&gt; z &lt;code&gt;Scrollbar&lt;/code&gt; (po prawej stronie) oraz jak użyć &lt;code&gt;after()&lt;/code&gt; aby dodać nowy element do listy co 1000ms (1s).&lt;/p&gt;
&lt;p&gt;Nowy element nie wymaga &lt;code&gt;'\n'&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;add_line&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;listbox&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;end&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;%H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;add_line&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# run …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-przyklad-uzycia-after-aby-dodac-do-listbox-ze-scrollbar-pl.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter Przykład: użycie Checkbutton do uruchomienia i zatrzymania timera</title><link>https://blog.furas.pl/python-tkinter-przyklad-uzycia-checkbutton-do-uruchomienia-i-zatrzymania-timera.html</link><description>&lt;p&gt;Gdy zaznaczysz &lt;code&gt;Checkbutton&lt;/code&gt; wtedy timer zostanie uruchomiony (bez wyświetlania czasu). &lt;/p&gt;
&lt;p&gt;Gdy oznaczysz &lt;code&gt;Checkbutton&lt;/code&gt; wtedy timer zostanie zatrzymany i wyświetlony czas zsumowany z porzedmini czasmi.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;time_start&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cb_var&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="n"&gt;time_start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;time_start&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-przyklad-uzycia-checkbutton-do-uruchomienia-i-zatrzymania-timera.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter Przykład: użycie `eval()` do policzenia wyrażenia</title><link>https://blog.furas.pl/python-tkinter-przyklad-uzycia-eval-do-liczenia-wyra%C5%BCenia-pl.html</link><description>&lt;p&gt;Przykład pokazuje jak pobrać wartości i wyrażenie z &lt;code&gt;Entry&lt;/code&gt; i użyć &lt;code&gt;eval()&lt;/code&gt; do jego policzenia.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;solve&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;

    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry_x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; 
    &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;entry_y&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;z&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;equation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;z_var&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;{0:.3f}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;z_var&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StringVar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-przyklad-uzycia-eval-do-liczenia-wyrażenia-pl.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter Przykład: użycie wielu Checkbutton wraz z IntVar lub StringVar</title><link>https://blog.furas.pl/python-tkinter-przyklad-uzycia-wielu-checkbutton-wraz-z-intvar-lub-stringvar-pl.html</link><description>&lt;p&gt;Przykład wykorzystuje słownik (dictionary) do przechowywania wielu &lt;code&gt;IntVar&lt;/code&gt;, które są przypisane do &lt;code&gt;Checkbutton&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;confirm&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_int_vars&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;pizza&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;breadsticks&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wings&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;CocaCola&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;brownie&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;all_int_vars&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IntVar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-przyklad-uzycia-wielu-checkbutton-wraz-z-intvar-lub-stringvar-pl.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Jak użyć pynput keyboard listener razem z GUI tkinter</title><link>https://blog.furas.pl/python-tkinter-przyk%C5%82ad-uzycia-pynput-keyboard-listener-pl.html</link><description>&lt;p&gt;W dokumentacji można zobaczyć przykład dla &lt;a href="https://pynput.readthedocs.io/en/latest/keyboard.html#monitoring-the-keyboard"&gt;Monitoring the keyboard&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;który blokuje kod więc nie może pracować razem z tkinter. Ale kod można wstawić między linie&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;keyboard&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Listener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_press&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_release&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# ... your code ...&lt;/span&gt;

    &lt;span class="n"&gt;listener&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;lub …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-przykład-uzycia-pynput-keyboard-listener-pl.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category><category>pynput</category></item><item><title>tekst [PL]</title><link>https://blog.furas.pl/python-tkinter-tekst-pl.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;widget&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;winfo_containing&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x_root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y_root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;widget&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="nb"&gt;hasattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;selectable&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;widget&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;red&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;X&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;selectable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
        &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/python-tkinter-tekst-pl.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Selenium: How to login using css_selector</title><link>https://blog.furas.pl/selenium-login-using-css-selector-gb.html</link><description>&lt;p&gt;It uses css selector to find element.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://quotes.toscrape.com/login&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input[id=&amp;quot;username&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello World!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input[id=&amp;quot;password&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello World!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input[value=&amp;quot;Login&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/selenium-login-using-css-selector-gb.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category></item><item><title>Selenium: Jak wykonać logowanie z uzyciem css_selector</title><link>https://blog.furas.pl/selenium-login-uzywajac-css-selector-pl.html</link><description>&lt;p&gt;Przykład używa css selector do znalezienia elementu.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://quotes.toscrape.com/login&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input[id=&amp;quot;username&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello World!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input[id=&amp;quot;password&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello World!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input[value=&amp;quot;Login&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Używam …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 21 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-21:/selenium-login-uzywajac-css-selector-pl.html</guid><category>Python/Selenium</category><category>python</category><category>selenium</category></item><item><title>Tkinter: Using after() to display time [GB]</title><link>https://blog.furas.pl/python-tkinter-use-after-to-display-time-gb.html</link><description>&lt;p&gt;Using &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root.after(milliseconds, callback)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;you can run function with delay.&lt;/p&gt;
&lt;p&gt;You can use it to display current time&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- function ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update_timer&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;update_timer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# run again after 1000ms = 1s&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;timer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sun, 12 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-12:/python-tkinter-use-after-to-display-time-gb.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Tkinter: Użycie after() do wyświetlania czasu</title><link>https://blog.furas.pl/python-tkinter-u%C5%BCycie-after-do-wyswietlania-czasu-pl.html</link><description>&lt;p&gt;Używajac&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;root.after(milliseconds, callback)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;można uruchomić funkcję z opoźnieniem.&lt;/p&gt;
&lt;p&gt;Można to wykorzystać do wyświetlannia aktualnego czasu&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- function ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update_timer&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;update_timer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# run again after 1000ms = 1s&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;timer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sun, 12 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-12:/python-tkinter-użycie-after-do-wyswietlania-czasu-pl.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>PyGame draw background checkerboard [GB]</title><link>https://blog.furas.pl/pygame-draw-background-chekerboard-gb.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/python/pygame/pygame-background-checkerboard.jpg" alt="python pygame - draw background checkerboard"/&gt;
&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pygame&lt;/span&gt;

&lt;span class="c1"&gt;# --- constants --- (UPPER_CASE_NAMES)&lt;/span&gt;

&lt;span class="n"&gt;SCREEN_WIDTH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;800&lt;/span&gt;
&lt;span class="n"&gt;SCREEN_HEIGHT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;600&lt;/span&gt;

&lt;span class="n"&gt;FPS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;

&lt;span class="n"&gt;GRAY_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;GRAY_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;192&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;192&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;192&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;screen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_mode&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;SCREEN_WIDTH&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SCREEN_HEIGHT&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# ---&lt;/span&gt;

&lt;span class="n"&gt;background&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;surface&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Surface&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;screen&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_size&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GRAY_1&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SCREEN_WIDTH&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SCREEN_HEIGHT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;pygame …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 11 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-11:/pygame-draw-background-chekerboard-gb.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyGame rysowanie tła w szachownicę</title><link>https://blog.furas.pl/pygame-rysowanie-tla-wszachownice-pl.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/python/pygame/pygame-background-checkerboard.jpg" alt="python pygame - draw background checkerboard"/&gt;
&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pygame&lt;/span&gt;

&lt;span class="c1"&gt;# --- constants --- (UPPER_CASE_NAMES)&lt;/span&gt;

&lt;span class="n"&gt;SCREEN_WIDTH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;800&lt;/span&gt;
&lt;span class="n"&gt;SCREEN_HEIGHT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;600&lt;/span&gt;

&lt;span class="n"&gt;FPS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;

&lt;span class="n"&gt;BLACK&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;WHITE&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;GREEN&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;RED&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;RED&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;BLUE&lt;/span&gt;   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;YELLOW&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;GRAY_1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;GRAY_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;192&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;192&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;192&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# --- main ---&lt;/span&gt;

&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;screen …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 11 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-11:/pygame-rysowanie-tla-wszachownice-pl.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyGame transparent Surface [GB]</title><link>https://blog.furas.pl/pygame-transparent-surface-gb.html</link><description>&lt;p&gt;If you use &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;surface&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_colorkey&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;then later &lt;code&gt;blit()&lt;/code&gt; will skip pixels which have color &lt;code&gt;[0,0,0]&lt;/code&gt; &lt;/p&gt;
&lt;p&gt;This way you can remove background from surface or loaded image. &lt;/p&gt;
&lt;p&gt;In this example I remove black color &lt;code&gt;[0, 0, 0]&lt;/code&gt; so it blits only rectangles on &lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="/images/python/pygame/pygame-transparent-set_colorkey-1.jpg" alt="python pygame - set_colorkey remove background"/&gt;
&lt;/div&gt;

&lt;p&gt;With this method …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sat, 11 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-11:/pygame-transparent-surface-gb.html</guid><category>Python/PyGame</category><category>python</category><category>pygame</category></item><item><title>PyAutoGui type native chars with delay [GB]</title><link>https://blog.furas.pl/python-pyautogui-type-native-chars-with-delay-gb.html</link><description>&lt;!-- https://stackoverflow.com/questions/59604162/typewrite-character-with-pyautogui --&gt;

&lt;p&gt;&lt;code&gt;pyautogui&lt;/code&gt; doesn't sends ascii char to program - it sends to system key code normally used for this char and system uses this key code to send char to program. 
But if system uses non-standard layout for keyboard then it can send different char then we expect.&lt;/p&gt;
&lt;p&gt;Normally &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 07 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-07:/python-pyautogui-type-native-chars-with-delay-gb.html</guid><category>Python</category><category>python</category><category>pyautogui</category></item><item><title>Use bash to run code in subprocess [GB]</title><link>https://blog.furas.pl/python-subprocess-use-bash-to-run-code.html</link><description>&lt;p&gt;&lt;code&gt;subprocess&lt;/code&gt; as default uses &lt;code&gt;/bin/sh&lt;/code&gt; instead of popular &lt;code&gt;/bin/bash&lt;/code&gt; so some syntax doesn't work &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;for num in {2..4}; do echo $num; done&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Result&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;{2..4}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can run &lt;code&gt;bash -c "command"&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bash -c &amp;quot;for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 07 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-07:/python-subprocess-use-bash-to-run-code.html</guid><category>Python</category><category>python</category><category>subprocess</category></item><item><title>Użycie bash do wykonania kodu w subprocess</title><link>https://blog.furas.pl/python-subprocess-uzycie-bash-do-wykonania-kodu-w-subprocess.html</link><description>&lt;p&gt;&lt;code&gt;subprocess&lt;/code&gt; domyślnie używa &lt;code&gt;/bin/sh&lt;/code&gt; zamiast popularnego &lt;code&gt;/bin/bash&lt;/code&gt; więc niektóra składnia nie działa&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;for num in {2..4}; do echo $num; done&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Wynik&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;{2..4}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Można użyć &lt;code&gt;bash -c "command"&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bash -c &amp;quot;for num in {2 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Tue, 07 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-07:/python-subprocess-uzycie-bash-do-wykonania-kodu-w-subprocess.html</guid><category>Python</category><category>python</category><category>subprocess</category></item><item><title>How to use Requsts to send arguments in url, POST data, JSON data or file to Flask</title><link>https://blog.furas.pl/python-flask-requests-use-requests-to-send-data-to-flask.html</link><description>&lt;p&gt;This code will display different data from &lt;code&gt;requests&lt;/code&gt; to show how &lt;code&gt;flask&lt;/code&gt; get them.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;GET&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;POST&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;args:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;form:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;form&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;json:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;app …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 06 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-06:/python-flask-requests-use-requests-to-send-data-to-flask.html</guid><category>Python/Requests</category><category>python</category><category>requests</category><category>flask</category></item><item><title>Scraping incomplete data with Selenium</title><link>https://blog.furas.pl/python-selenium-scraping-incomplete-data-gb.html</link><description>&lt;p&gt;Sometimes people scrape separatelly different values from page&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;all_names&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.//h3/a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_prices&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;price_color&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_others&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;other&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and later group them using &lt;code&gt;zip()&lt;/code&gt; &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;all_names&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;all_prices&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;all_others&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;but it makes problem if for some items data are incomplete - like &lt;code&gt;other&lt;/code&gt; in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 06 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-06:/python-selenium-scraping-incomplete-data-gb.html</guid><category>Python/Scraping</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Scraping niekompletnych danych z Selenium</title><link>https://blog.furas.pl/python-selenium-scraping-niekompletnych-danych.html</link><description>&lt;p&gt;Czasami ludzie zbierają oddzielnie różne wartości ze strony&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;all_names&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.//h3/a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_prices&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;price_color&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_others&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;other&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;a potem grupują ją używając &lt;code&gt;zip()&lt;/code&gt; &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;all_names&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;all_prices&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;all_others&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ale to może powodować problem jeśli niektóre elementy mają niekompletne dane - jak &lt;code&gt;other&lt;/code&gt; w …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 06 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-06:/python-selenium-scraping-niekompletnych-danych.html</guid><category>Python/Scraping</category><category>python</category><category>selenium</category><category>scraping</category></item><item><title>Use down arrow to jump from last to first row in Treeview</title><link>https://blog.furas.pl/python-tkinter-treeview-use-arrow-key-to-jump-from-last-to-first-row.html</link><description>&lt;p&gt;It uses &lt;code&gt;bind()&lt;/code&gt; to execute function when you press &lt;code&gt;Down&lt;/code&gt; arrow in &lt;code&gt;Treeview&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Function checks if you are in last row &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_children&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;and moves focus and selection to first row, and it scrolls window to this row.
It also sends string &lt;code&gt;"break"&lt;/code&gt; so …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 06 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-06:/python-tkinter-treeview-use-arrow-key-to-jump-from-last-to-first-row.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Użycie strzałki w dół aby przeskoczyć z ostatniego do pierwszego wiersza w Treeview</title><link>https://blog.furas.pl/python-tkinter-treeview-uzycie-strzalki-w-dol-aby-przeskoczyc-z-ostatniego-do-pierszego-wiersza.html</link><description>&lt;p&gt;Kod używa &lt;code&gt;bind()&lt;/code&gt; aby wywołać funkcję gdy zostaje wciśnieta strzałka w dół &lt;code&gt;Down&lt;/code&gt; w &lt;code&gt;Treeview&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Funkcja sprawdza czy jesteśmy w ostatnim wierszu&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_children&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;i przenosi fokus oraz selekcje do pierwszego wiersza, oraz przewija okno do tego wiersza.
Wysyła także napis &lt;code&gt;"break"&lt;/code&gt; aby &lt;code&gt;Treeview …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 06 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-06:/python-tkinter-treeview-uzycie-strzalki-w-dol-aby-przeskoczyc-z-ostatniego-do-pierszego-wiersza.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Jak użyć Requsts do wysłania argumentów w url, danych POST, danych JSON lub pliku do Flask</title><link>https://blog.furas.pl/python-uzycie-requests-do-wys%C5%82ania-danych-do-flask.html</link><description>&lt;p&gt;Ten kod wyświetli różne dane przysłane z &lt;code&gt;requests&lt;/code&gt; aby pokazać jak je odebrać we `flask``.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;GET&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;POST&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;args:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;form:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;form&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;json:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__ …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Mon, 06 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-06:/python-uzycie-requests-do-wysłania-danych-do-flask.html</guid><category>Python/Requests</category><category>python</category><category>requests</category><category>flask</category></item><item><title>Prędkość żółwia w Turtle</title><link>https://blog.furas.pl/python-turtle-predkosc-zolwia.html</link><description>&lt;p&gt;Normalnie żółw rysuje powoli każdą linię kawałek po kawałku (wykonująć wiele małych kroków)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;done&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Aby zmienić jego prędkość można użyć &lt;code&gt;turtle.speed(liczba)&lt;/code&gt; gdzie &lt;code&gt;1&lt;/code&gt; oznacza najwolniej, &lt;code&gt;10&lt;/code&gt; szybko ale &lt;code&gt;0&lt;/code&gt; oznacza …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej furas Burek</dc:creator><pubDate>Sun, 05 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-05:/python-turtle-predkosc-zolwia.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>OpenCV: error: (-215:Assertion failed) !_img.empty() in function 'imwrite' [GB]</title><link>https://blog.furas.pl/opencv-error-img-empty-in-function-imwrite-gb.html</link><description>&lt;p&gt;Error&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;OpenCV&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;4.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;io&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opencv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;imgcodecs&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;loadsave&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cpp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;715&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;215&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Assertion&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;_img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;imwrite&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;means you try to write empty array (empty image). &lt;/p&gt;
&lt;p&gt;You can get the same error using empty array.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;

&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imwrite …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 04 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-04:/opencv-error-img-empty-in-function-imwrite-gb.html</guid><category>Python/OpenCV</category><category>python</category><category>opencv</category><category>cv</category><category>cv2</category></item><item><title>OpenCV: error: (-215:Assertion failed) !_img.empty() in function 'imwrite' [PL]</title><link>https://blog.furas.pl/opencv-error-img-empty-in-function-imwrite-pl.html</link><description>&lt;p&gt;Błąd &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;OpenCV&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;4.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;io&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opencv&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;imgcodecs&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;loadsave&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cpp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;715&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;215&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Assertion&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;failed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;_img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;imwrite&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;oznacza, że próbujesz zapisać pustą tablicę (pusty obraz). &lt;/p&gt;
&lt;p&gt;Ten sam błąd można otrzymać używąc pustej tablicy.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;

&lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;imwrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;img.png …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 04 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-04:/opencv-error-img-empty-in-function-imwrite-pl.html</guid><category>Python/OpenCV</category><category>python</category><category>opencv</category><category>cv</category><category>cv2</category></item><item><title>Problem to load file haarcascades in OpenCV [GB]</title><link>https://blog.furas.pl/python-opencv-problem-to-load-haarcascades-files-gb.html</link><description>&lt;p&gt;Sometimes tutorial loads &lt;code&gt;haarcascades&lt;/code&gt; file installed with &lt;code&gt;OpenCV&lt;/code&gt; like this &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;eye_cascade = cv2.CascadeClassifier(&amp;#39;haarcascade_eye.xml&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;but when we run code&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;

&lt;span class="n"&gt;eye_cascade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CascadeClassifier&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;haarcascade_eye.xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="kp"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kp"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;uint8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;eye_cascade&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;detectMultiScale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;then we get error&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cv2 …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 04 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-04:/python-opencv-problem-to-load-haarcascades-files-gb.html</guid><category>Python/OpenCV</category><category>python</category><category>opencv</category><category>cv</category><category>cv2</category><category>haarcascades</category></item><item><title>Problem z wczytaniem pliku haarcascades w OpenCV</title><link>https://blog.furas.pl/python-opencv-problem-z-wczytaniem-pliku-haarcascades-pl.html</link><description>&lt;p&gt;Czasami tutorial wczytuje plik &lt;code&gt;haarcascades&lt;/code&gt; zainstalowany z &lt;code&gt;OpenCV&lt;/code&gt; w ten sposób&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;eye_cascade = cv2.CascadeClassifier(&amp;#39;haarcascade_eye.xml&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ale gdy my uruchamiamy taki kod&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;cv2&lt;/span&gt;

&lt;span class="n"&gt;eye_cascade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cv2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CascadeClassifier&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;haarcascade_eye.xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="kp"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kp"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;uint8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;eye_cascade&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;detectMultiScale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;to otrzymujemy błąd …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 04 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-04:/python-opencv-problem-z-wczytaniem-pliku-haarcascades-pl.html</guid><category>Python/OpenCV</category><category>python</category><category>opencv</category><category>cv</category><category>cv2</category><category>haarcascades</category></item><item><title>Przypisanie funkcji z argumentami do Button w Tkinter</title><link>https://blog.furas.pl/python-tkinter-przypisanie-do-button-command-funkcji-z-argumentami.html</link><description>&lt;p&gt;Normalnie &lt;code&gt;command=&lt;/code&gt; w &lt;code&gt;Button&lt;/code&gt; oczekuje "callback" co oznacza nazwę funkcji bez &lt;code&gt;()&lt;/code&gt; 
i bez argumentów - ale czasami jest potrzeba przyspisania funkcji z argumentem i wtedy można do tego użyć &lt;code&gt;lambda&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arg2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arg3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;button1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Button …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 04 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-04:/python-tkinter-przypisanie-do-button-command-funkcji-z-argumentami.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Assign function with arguments to Button in Tkinter</title><link>https://blog.furas.pl/tkinter-assign-button-command-function-with-arguments.html</link><description>&lt;p&gt;Normally &lt;code&gt;command=&lt;/code&gt; in &lt;code&gt;Button&lt;/code&gt; expects "callback" - it means function's name without &lt;code&gt;()&lt;/code&gt; 
and without arguments - but sometimes it is needed to assign function with argument 
and then you can use &lt;code&gt;lambda&lt;/code&gt; to do this.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arg2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arg3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 04 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-04:/tkinter-assign-button-command-function-with-arguments.html</guid><category>Python/Tkinter</category><category>python</category><category>tkinter</category></item><item><title>Grafika Komputerowa - Rudeger Baumann</title><link>https://blog.furas.pl/grafika-komputerowa-rudger-baumann.html</link><description>&lt;p&gt;Serwer:  &lt;a class="reference external" href="http://elysium.filety.pl/"&gt;elysium.filety.pl&lt;/a&gt;
Katalog: &lt;a class="reference external" href="http://elysium.filety.pl/?dir=docs/programming/polskie_wydawnictwa"&gt;/docs/programming/polskie_wydawnictwa&lt;/a&gt;
Plik: &lt;a class="reference external" href="http://elysium.filety.pl/docs/programming/polskie_wydawnictwa/Rudeger_Baumann_-_Grafika_komputerowa_WKiL.djvu"&gt;Rudeger Baumann - Grafika Komputerowa (djvu)&lt;/a&gt;&lt;/p&gt;
&lt;img alt="grafika komputerowa" class="uk-align-center" src="images/page-1.webp" /&gt;
&lt;img alt="grafika komputerowa" class="uk-align-center" src="images/page-76.webp" /&gt;
&lt;img alt="grafika komputerowa" class="uk-align-center" src="images/page-146.webp" /&gt;
&lt;img alt="grafika komputerowa" class="uk-align-center" src="images/page-147.webp" /&gt;
&lt;img alt="grafika komputerowa" class="uk-align-center" src="images/page-246.webp" /&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/grafika-komputerowa-rudger-baumann.html</guid><category>Inne</category><category>inne</category><category>grafika</category></item><item><title>Python: How to scrape aastocks.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-aastocks.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.09.16&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57861715/scrapy-infinite-scrolling-no-pagination-indication&lt;/span&gt;
&lt;span class="c1"&gt;# http://www.aastocks.com&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;newstime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;934735827&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;newsid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;HKEX-EPS-20190815-003587368&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://www.aastocks.com/tc/resources/datafeed/getmorenews.ashx?cat=all&amp;amp;newstime=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;newsid=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;period=0&amp;amp;key=&amp;amp;symbol=00001&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;url_artickle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://www.aastocks …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-aastocks.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape allegro.pl with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-allegro.pl-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2017.12.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47744135/1832058&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="c1"&gt;#from allegro.items import AllegroItem&lt;/span&gt;

&lt;span class="c1"&gt;#class AllegroItem(scrapy.Item):&lt;/span&gt;
&lt;span class="c1"&gt;#    product_name = scrapy.Field()&lt;/span&gt;
&lt;span class="c1"&gt;#    product_sale_price = scrapy.Field()&lt;/span&gt;
&lt;span class="c1"&gt;#    product_seller = scrapy.Field()&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AllegroPrices&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;AllegroPrices&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;allegro.pl&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s2"&gt;&amp;quot;http://allegro.pl …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-allegro.pl-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape alloschool.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-alloschool.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.07.29&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57245315/using-scrapy-how-to-download-pdf-files-from-some-extracted-links&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="s1"&gt;&amp;#39;https://www.alloschool.com/course/alriadhiat-alaol-ibtdaii&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.default .er&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;@href&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;extract …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-alloschool.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape amazon.com (1) with requests, lxml</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-amazon.com-(1)-with-requests,-lxml.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;lxml&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2017.12.22&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47935432/1832058&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://www.amazon.com/dp/B008HDREZ6&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-amazon.com-(1)-with-requests,-lxml.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape amazon.com (2) with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-amazon.com-(2)-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.03.30&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.amazon.com/international-sales-offers/b/?ie=UTF8&amp;amp;node=15529609011&amp;amp;ref_=nav_cs_gb_intl&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;deal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;100_dealView_&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="n"&gt;image …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-amazon.com-(2)-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape aopa.org with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-aopa.org-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60601053/python-selenium-for-loop-iterates-through-entire-website/60601428&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#wait = WebDriverWait(driver, 10)&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.aopa.org/destinations/airports/state/AL&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;airport_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;paved_runway&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="n"&gt;airport_row&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//div[@class = &amp;quot;state-airports__airport&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-aopa.org-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape api.weatherflow.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-api.weatherflow.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.10&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://api.weatherflow.com/wxengine/rest/model/getModelDataBySpot?model_id=-1&amp;amp;spot_id=110&amp;amp;units_wind=mph&amp;amp;units_temp=F&amp;amp;format=json&amp;amp;wf_apikey=84e778ae-fe8e-4b8f-8d33-6bc88967a2b1&amp;amp;wf_token=f147702351af100d7c220b633d085318&amp;amp;v=1.1&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-api.weatherflow.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape apps.upenn.edu with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-apps.upenn.edu-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.26&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;scrape&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;last_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;first_name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;        
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://directory.apps.upenn.edu/directory/jsp/fast.do&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_tag_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;input&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;#for item in inputs:&lt;/span&gt;
    &lt;span class="c1"&gt;#    print(item.get_attribute …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-apps.upenn.edu-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape associatedrealtorsaruba.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-associatedrealtorsaruba.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.07&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59632031/how-to-extract-href-when-href-element-is-a-hyperlink?noredirect=1#comment105434826_59632031&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://associatedrealtorsaruba.com/index.php?option=com_ezrealty&amp;amp;Itemid=11&amp;amp;task=results&amp;amp;cnid=0&amp;amp;custom7=&amp;amp;custom8=&amp;amp;parking=&amp;amp;type …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-associatedrealtorsaruba.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape associatedrealtorsaruba.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-associatedrealtorsaruba.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.07&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59632031/how-to-extract-href-when-href-element-is-a-hyperlink?noredirect=1#comment105434826_59632031&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://associatedrealtorsaruba.com/index.php?option=com_ezrealty&amp;amp;Itemid=11&amp;amp;task=results&amp;amp;cnid=0&amp;amp;custom7=&amp;amp;custom8=&amp;amp;parking=&amp;amp;type=0&amp;amp;cid=0&amp;amp;stid=0 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-associatedrealtorsaruba.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ausrealtimefueltype.global-roam.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ausrealtimefueltype.global-roam.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.17&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59779978/python-requests-output-is-different-to-expected-output/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://ausrealtimefueltype.global-roam.com/api/SeriesSnapshot?time=&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;seriesCollection …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ausrealtimefueltype.global-roam.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape automationpractice.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-automationpractice.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.keys&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Keys&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;By&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support.ui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;WebDriverWait&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;expected_conditions&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;EC&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.common.exceptions&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;NoSuchElementException&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TimeoutException&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="k"&gt;try …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-automationpractice.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape avanza.se with bank with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-avanza.se-with-bank-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;output.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;webbrowser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;USER-AGENT&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-avanza.se-with-bank-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape bankier.pl with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-bankier.pl-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# https://www.bankier.pl/inwestowanie/profile/quote.html?symbol=CDPROJEKT&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;one_day&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Symbol:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# jeden dzien&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.bankier.pl/new-charts/get-data&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="s1"&gt;?symbol=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="s1"&gt;&amp;amp;intraday=true&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="s1"&gt;&amp;amp;today=true&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="s1"&gt;&amp;amp;type=area&lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="s1"&gt;&amp;amp;init=true&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;r …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-bankier.pl-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape basketball-reference.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-basketball-reference.com-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.28&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;#39;furas&amp;#39; Burek&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/55885909/1832058&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Comment&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.basketball-reference.com/players/b/bogutan01.html#advanced::none&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-basketball-reference.com-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape bcdental.org with requests with ASP.net</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-bcdental.org-with-requests-with-ASP.net.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48075115/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.bcdental.org/yourdentalhealth/findadentist.aspx&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;# --- session ---&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# to automatically copy cookies&lt;/span&gt;
&lt;span class="c1"&gt;#s.headers.update({&amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-bcdental.org-with-requests-with-ASP.net.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape bing.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-bing.com-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.07&lt;/span&gt;
&lt;span class="c1"&gt;# ???&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="c1"&gt;#import webbrowser&lt;/span&gt;

&lt;span class="c1"&gt;#s = requests.Session()&lt;/span&gt;

&lt;span class="c1"&gt;#headers = {&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;#}&lt;/span&gt;

&lt;span class="c1"&gt;#response = s.get(&amp;quot;https://www.bing.com&amp;quot;, headers …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-bing.com-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape bit.do with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-bit.do-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.21&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/55778640/1832058&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;# not need Sessions&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Accept-Encoding&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;gzip, deflate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Accept-Language&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pl,en-US;q=0 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-bit.do-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape blockchain.info with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-blockchain.info-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.18&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61858764/is-there-an-easy-way-to-access-all-transactions-recorded-in-a-bitcoin-block-with/&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;
&lt;span class="c1"&gt;# https://www.blockchain.com/api/blockchain_api&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://blockchain.info/block-height/100?format=json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#print(r.text)&lt;/span&gt;
&lt;span class="c1"&gt;#print(data)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;blocks …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-blockchain.info-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape blog.prepscholar.com with urlib, BS, pandas</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-blog.prepscholar.com-with-urlib,-BS,-pandas.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.26&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60407196/creating-csv-spreadsheets-from-web-tables-acquired-through-beautifulsoup&lt;/span&gt;

&lt;span class="c1"&gt;# with pandas &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;all_tables&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://blog.prepscholar.com/act-to-sat-conversion&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_tables&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;output1.csv&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_tables&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;output2.csv&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 

&lt;span class="c1"&gt;# with BeautifulSoup it would need …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-blog.prepscholar.com-with-urlib,-BS,-pandas.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape bloomberg.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-bloomberg.com-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# if it get data then it works event with less headers&lt;/span&gt;
&lt;span class="c1"&gt;# but when it get title `Bloomberg - Are you a robot?`&lt;/span&gt;
&lt;span class="c1"&gt;# then it can get recaptcha which you may see when you open page in browser.&lt;/span&gt;
&lt;span class="c1"&gt;# Sometimes it needs all headers again and …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-bloomberg.com-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape bluebet.com.au with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-bluebet.com.au-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47679861/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;BlueBet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;BlueBet&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.bluebet.com.au/api/sports/SportsMasterCategory?withLevelledMarkets=true&amp;amp;id=100&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;custom_settings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;FEED_FORMAT&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;FEED_URI&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;odds.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;FEED_EXPORT_ENCODING&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-bluebet.com.au-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape booksy.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-booksy.com-with--requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.21&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/58964487/beautifulsoup-scraping-other-pages-if-there-is-no-change-in-link-or-href-avail&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;X-Api-Key&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;web-e3d812bf-d7a2-445d-ab38-55589ae6a121&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://booksy.com/api/pl/2/customer_api/businesses/17101/reviews?reviews_page=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;reviews_per_page=5&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--- page:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;---&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;r …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-booksy.com-with--requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape cafe.daum.net with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-cafe.daum.net-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60362610/python-selenium-click-a-button/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://cafe.daum.net/WekiMeki&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;#driver = selenium.webdriver.Firefox()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;frame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;down&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;driver …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-cafe.daum.net-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape cargurus.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-cargurus.com-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47933667/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;zip&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;03062&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;address&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Nashua,+NH&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;latitude&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;42.73040008544922&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;longitude&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-71.49479675292969&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;distance&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;selectedEntity&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;c24578&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;entitySelectingHelper.selectedEntity2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;c25202&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;minPrice&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;maxPrice&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;&amp;#39;minMileage&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   
    &lt;span class="s1"&gt;&amp;#39;maxMileage&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   
    &lt;span class="s1"&gt;&amp;#39;transmission&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ANY&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;bodyTypeGroup&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;    
    &lt;span class="s1"&gt;&amp;#39;serviceProvider&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  
    &lt;span class="s1"&gt;&amp;#39;page&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;filterBySourcesString&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;filterFeaturedBySourcesString …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-cargurus.com-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ceneo.pl with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ceneo.pl-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47888293/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;https://www.ceneo.pl/48523541, 1362&lt;/span&gt;
&lt;span class="s1"&gt;https://www.ceneo.pl/46374217, 2457&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.ceneo.pl/33022301&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;start_requests&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# get data from …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ceneo.pl-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape cgtrader.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-cgtrader.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="c1"&gt;#from scrapy.commands.view import open_in_browser&lt;/span&gt;
&lt;span class="c1"&gt;#import json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FileDownloaderItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;file_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;full_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;www.cgtrader.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.cgtrader.com/free-3d-print-models …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-cgtrader.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape claytoncountyga.gov with selenium with iframe</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-claytoncountyga.gov-with-selenium-with-iframe.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.claytoncountyga.gov/government/sheriff/inmate-search&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;iframes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_tag_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;iframe&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;iframes:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;iframes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iframes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;name:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;John&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_name …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-claytoncountyga.gov-with-selenium-with-iframe.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape cnbc.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-cnbc.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47744797/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.cnbc.com/2017/12/07/pinterest-hires-former-facebook-exec-gary-johnson-to-run-corporate-dev.html&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html5lib&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_paragraphs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;p&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_paragraphs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;#print(p) # all HTML&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-cnbc.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape cnmv.es with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-cnmv.es-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.08.04&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/63246707/python-scraping-create-payload-cnmv-es-and-render-javascript/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.cnmv.es/portal/Consultas/BusquedaPorEntidad.aspx&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;?lang=en&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;search_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;aaa&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# &amp;#39;abc&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#print(response.text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-cnmv.es-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape cnnvd.org.cn with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-cnnvd.org.cn-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47940659/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://www.cnnvd.org.cn/web/vulnerability/querylist.tag&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;web&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;web&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;lxml&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;cve_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="n"&gt;cve_link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;par_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-cnnvd.org.cn-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape coinbase.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-coinbase.com-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.02&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59132449/what-is-the-proper-syntax-for-find-in-bs4&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.coinbase.com/charts&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_tr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;tr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-coinbase.com-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape coinmarketcap.com (1) with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-coinmarketcap.com-(1)-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;start_date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2016.01.01&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;finish_date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2017.01.01&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;start_date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strptime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%Y.%m.&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;finish_date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strptime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;finish_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%Y.%m.&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;start_timestamp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start_date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;one_day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;days&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;finish_timestamp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;finish_date …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-coinmarketcap.com-(1)-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape coinmarketcap.com (2) with requests, lxml</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-coinmarketcap.com-(2)-with-requests,-lxml.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.05.09&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;#39;furas&amp;#39; Burek&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/56059703/how-can-i-make-lxml-save-two-pages-to-the-pages-so-it-can-be-read-by-the-tree&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;lxml&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;BTC&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;id-bitcoin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;TRX&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;id-tron&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;# ...&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;HC&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;id-hypercash&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;XZC&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;id-zcoin&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;all_results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://coinmarketcap.com/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://coinmarketcap.com/2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-coinmarketcap.com-(2)-with-requests,-lxml.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape coinmarketcap.com (3) with pandas</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-coinmarketcap.com-(3)-with-pandas.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.25&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/63075215/read-html-where-required-table-needs-users-input/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;all_dfs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://coinmarketcap.com/exchanges/bitfinex/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;all_dfs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Pair&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;USD&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-coinmarketcap.com-(3)-with-pandas.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape collegiate-ac.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-collegiate-ac.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47729218/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CollegiateSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Collegiate&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;collegiate-ac.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://collegiate-ac.com/uk-student-accommodation/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;# Step 1 - Get the area links&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//*[@id=&amp;quot;top …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-collegiate-ac.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape comics.panini.it with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-comics.panini.it-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.08.06&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57366488/how-to-pass-the-single-link-in-a-nested-url-scrape&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;clean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\xa0&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PaniniSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-comics.panini.it-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape corporate.dow.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-corporate.dow.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.24&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59019810/python-web-scraping-ahref-link-and-articles-not-showing-up-in-source-code&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://corporate.dow.com/en-us/news.html&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//ul[@class=&amp;quot;results__list&amp;quot;]/li&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_items …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-corporate.dow.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape coursetalk.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-coursetalk.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48017689/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.coursetalk.com/subjects/data-science/courses&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.//*[@class=&amp;quot;as-table-cell&amp;quot;]/a/@href …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-coursetalk.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape craigslist.org with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-craigslist.org-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47720827/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;output.csv&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;csvwriter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;csvwriter&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Date&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Location&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Price&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;offset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-craigslist.org-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape curecity.in with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-curecity.in-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.18&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59386434/selenium-webdriver-i-want-to-click-on-the-next-page-till-last-page/59387563#59387563&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="c1"&gt;#from bs4 import BeautifulSoup as bs&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://curecity.in/vendor-list.php?category=Doctor&amp;amp;filters_location=Jaipur&amp;amp;filters%5Bsubareas_global%5D=&amp;amp;filters_speciality=&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;#driver …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-curecity.in-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape data.gov with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-data.gov-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://api.data.gov/&lt;/span&gt;
&lt;span class="c1"&gt;# https://regulationsgov.github.io/developers/basics/&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48030949/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;all_titles&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;EPA-HQ-OAR-2013-0602&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PB36zotwgisM02kED1vWwvf7BklqCObDGVoyssVE&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;api_base&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://api.data.gov/regulations/v3/&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;api_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;docket.json?api_key=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;docketId=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-data.gov-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape deezer.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-deezer.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;base_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.deezer.com/en/profile/1589856782/loved&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_scripts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;script&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;all_scripts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_text&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="p"&gt;:])&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;key:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="nb"&gt;print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-deezer.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape doctor.webmd.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-doctor.webmd.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="c1"&gt;#allowed_domains = [&amp;#39;&amp;#39;link&amp;#39;&amp;#39;]&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://doctor.webmd.com/find-a-doctor/specialty/psychiatry/arizona/phoenix?pagenumber=1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

        &lt;span class="n"&gt;doctors_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//*[@class=&amp;quot;doctorName&amp;quot;]//@href&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;extract&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;doctor&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;doctors_urls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;doctor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-doctor.webmd.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape dps.psx.com.pk with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-dps.psx.com.pk-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59008770/want-to-read-a-tag-data-using-selenium&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://dps.psx.com.pk/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;last_table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;//table&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;last_table&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;.//tr&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_xpath …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-dps.psx.com.pk-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape drugbank.ca with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-drugbank.ca-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47716786/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48116666/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_details&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;details:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# get subpage&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;lxml&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# get data on subpabe&lt;/span&gt;
    &lt;span class="n"&gt;dts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;dt …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-drugbank.ca-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape drugeye.pharorg.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-drugeye.pharorg.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.09.09&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/57856461/python-run-search-function-on-net-web-page&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.drugeye.pharorg.com/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;ttt&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;asd&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;b1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wait...&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Passgenericname …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-drugeye.pharorg.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape e-turysta.pl with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-e-turysta.pl-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59674049/multiple-pages-web-scraping-with-python-and-beautiful-soup/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="c1"&gt;# HTML data structure&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_page_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;number:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://e-turysta.pl/noclegi-krakow/?page=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-e-turysta.pl-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ec.europa.eu with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ec.europa.eu-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59674921/how-can-i-scrape-image-url-from-this-website/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://ec.europa.eu/taxation_customs/dds2/ebti/ebti_consultation.jsp?Lang=en&amp;amp;Lang=en&amp;amp;refcountry=&amp;amp;reference=&amp;amp;valstartdate=&amp;amp;valstartdateto …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ec.europa.eu-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape edx.org with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-edx.org-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48067671/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.http&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Request&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.item&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Item&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.spiders&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CrawlSpider&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Rule&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.linkextractor&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LinkExtractor&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.loader&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ItemLoader&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Course_spider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CrawlSpider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-edx.org-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ef.edu with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ef.edu-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.26&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60405929/python-beautifulsoup-adding-words-from-an-html-paragraph-tag-to-list&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.ef.edu/english-resources/english-vocabulary/top-1000-words/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;html.parser&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;para&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;class_&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;field-item even&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;second_p …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ef.edu-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape epicgames.com with free games with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-epicgames.com-with-free-games-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.18&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61876744/scraper-returns-null-result/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://store-site-backend-static.ak.epicgames.com/freeGamesPromotions?locale=en-US&amp;amp;country=PL&amp;amp;allowCountries=PL&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#print(r.text)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;data …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-epicgames.com-with-free-games-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape espn.com (1) with scrapy, requests, pandas</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-espn.com-(1)-with-scrapy,-requests,-pandas.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;Data&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;between&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;queue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;JSON&lt;/span&gt; &lt;span class="nb"&gt;format&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;

&lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;use&lt;/span&gt; &lt;span class="n"&gt;standard&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;functions&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ie&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;slicing&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;cut&lt;/span&gt; &lt;span class="n"&gt;off&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="n"&gt;part&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;And&lt;/span&gt; &lt;span class="n"&gt;then&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;use&lt;/span&gt; &lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;convert&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;And&lt;/span&gt; &lt;span class="n"&gt;then&lt;/span&gt; &lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;have&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;only …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-espn.com-(1)-with-scrapy,-requests,-pandas.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape espn.com (1) with scrapy, requests, pandas/api-requests-dataframe</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-espn.com-(1)-with-scrapy,-requests,-pandas/api-requests-dataframe.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://site.web.api.espn.com/apis/common/v3/sports/football/nfl/statistics/byathlete?region=us&amp;amp;lang=en&amp;amp;contentorigin=espn&amp;amp;isqualified=false&amp;amp;limit=50&amp;amp;category=offense%3Arushing&amp;amp;sort=rushing.rushingYards%3Adesc&amp;amp;season=2018&amp;amp;seasontype=2&amp;amp;page …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-espn.com-(1)-with-scrapy,-requests,-pandas/api-requests-dataframe.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape espn.com (2) with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-espn.com-(2)-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.03.01&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60471569/turning-for-loop-into-multiprocessing-loop/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://site.web.api.espn.com/apis/common/v3/search?region=us&amp;amp;lang=en&amp;amp;query=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;limit=5&amp;amp;mode=prefix&amp;amp;type=player&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-espn.com-(2)-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape facebook.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-facebook.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47539575/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;browser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;#&amp;#39;/usr/local/bin/chromedriver&amp;#39;)&lt;/span&gt;

&lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.facebook.com/SparColruytGroup/app/300001396778554?app_data=DD722A43-C774-FC01-8823-8016BFF8F0D0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;implicitly_wait&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;iframe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#pagelet_app_runner iframe&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;switch_to_frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iframe&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;iframe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#qualifio_insert_place …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-facebook.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape fbref.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-fbref.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.09.21&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt; 

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://fbref.com/en/matches/033092ef/Northampton-Town-Lincoln-City-August-4-2018-League-Two&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;stats&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;team_stats&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-fbref.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape fcainfoweb.nic.in</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-fcainfoweb.nic.in.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.28&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt; 
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support.ui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end_date&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;product&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="c1"&gt;# select `Variation Report`&lt;/span&gt;
    &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ctl00_MainContent_Rbl_Rpt_type_1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;click&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# select `Daily Variant`&lt;/span&gt;
    &lt;span class="n"&gt;element_variation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-fcainfoweb.nic.in.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape fileinfo.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-fileinfo.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.04.19&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61298422/extracting-specific-elements-in-a-table-with-selenium-in-python/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# --- video ---&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://fileinfo.com/filetypes/video&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//td/a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-fileinfo.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape finance.naver.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-finance.naver.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt;  &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;req&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://finance.naver.com/sise/&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;html.parser&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;#contentarea_right #trend_tab_1 tr&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;cols&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;td&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cols&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cols …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-finance.naver.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape finance.yahoo.com-quote-spy with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-finance.yahoo.com-quote-spy-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.23&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://finance.yahoo.com/quote/SPY&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;script&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;script&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;112&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;data …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-finance.yahoo.com-quote-spy-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape finance.yahoo.com with news with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-finance.yahoo.com-with-news-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.11&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;#driver = webdriver.Chrome()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://finance.yahoo.com/quote/INFY/news?p=INFY&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
       &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;execute_script …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-finance.yahoo.com-with-news-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape flashscore.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-flashscore.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.06.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62293949/web-scraping-with-bs4-pyhton3-cant-find-elements/62294633#62294633&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;bs&lt;/span&gt;

&lt;span class="c1"&gt;#url = &amp;#39;https://www.flashscore.com/field-hockey/netherlands/hoofdklasse/standings/&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://d.flashscore.com/x/feed/ss_1_INmPqO86_GOMWObX1_table_overall&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-flashscore.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ford.co.uk with dowload-manual with Selenium + BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ford.co.uk-with-dowload-manual-with-Selenium-+-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60377798/error-while-selecting-dependent-drop-down-and-click-the-option-in-python/60378558#60378558&lt;/span&gt;
&lt;span class="c1"&gt;# Error while selecting dependent drop down and click the option In Python&lt;/span&gt;


&lt;span class="c1"&gt;# BTW: sometimes page shows popup window at start but I didn&amp;#39;t try to solve this problem&lt;/span&gt;

&lt;span class="c1"&gt;# BTW: I had to check `if …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ford.co.uk-with-dowload-manual-with-Selenium-+-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape forexfactory.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-forexfactory.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.30&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59535798/python-webscraping-with-beautifulsoup-not-displaying-full-content/59536553#59536553&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.forexfactory.com/#detail=108867&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# page uses JavaScript to redirect page so browser may shows different results …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-forexfactory.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape forum.toribash.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-forum.toribash.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48078358/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;lxml&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://forum.toribash.com/tori_spy.php&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;tree&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fromstring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;//script&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;highestid&amp;#39;&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-forum.toribash.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape fr.alliexpress.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-fr.alliexpress.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47851923/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;#&amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0&amp;#39;,&lt;/span&gt;

    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:48.0) Gecko/20100101 Firefox/48.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

    &lt;span class="c1"&gt;#&amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (Windows …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-fr.alliexpress.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape fundamentus.com.br with requests, pandas, json</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-fundamentus.com.br-with-requests,-pandas,-json.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.16&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/62921395/pandas-include-key-to-json-file/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://www.fundamentus.com.br/resultado.php&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;User-Agent&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-fundamentus.com.br-with-requests,-pandas,-json.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape fundrazr.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-fundrazr.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47495628/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pyquery&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://fundrazr.com/find?category=Health&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--- css 1 ---&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;h2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;gt;&amp;gt;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--- css 2 ---&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;title …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-fundrazr.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape g2a.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-g2a.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.05.19&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;#39;furas&amp;#39; Burek&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/56208824/403-forbidden-error-when-scraping-a-site-user-agents-already-used-and-updated?noredirect=1#comment99040341_56208824&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.g2a.com/lucene/search/filter?&amp;amp;search=The+Elder+Scrolls+V:+Skyrim&amp;amp;currency=nzd&amp;amp;cc=NZD&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="c1"&gt;#   &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (X11 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-g2a.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape gall.dcinside.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-gall.dcinside.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.01&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59551193/i-want-to-download-images-from-python-what-should-i-do/&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;#path = r&amp;quot;C:\Users\qpslt\Desktop\py\chromedriver_win32\chromedriver.exe&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;#driver = webdriver.Chrome(path)&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://gall.dcinside.com/board …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-gall.dcinside.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape games.crossfit.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-games.crossfit.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.20&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59419682/how-do-i-extract-this-entire-table-and-store-it-in-csv-file/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://games.crossfit.com/competitions/api/v1/competitions/open/2020/leaderboards?view=0&amp;amp;division=1&amp;amp;scaled=0&amp;amp;sort=0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-games.crossfit.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape goodjobsfirst.org</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-goodjobsfirst.org.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.06.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62306522/scraping-list-of-values-from-drop-down/&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support.ui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;

&lt;span class="c1"&gt;#browser = webdriver.Chrome(executable_path=r&amp;quot;C:\webdrivers\chromedriver.exe&amp;quot;)&lt;/span&gt;
&lt;span class="n"&gt;browser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.goodjobsfirst.org/violation-tracker …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-goodjobsfirst.org.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape google.com-finance with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-google.com-finance-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.09&lt;/span&gt;
&lt;span class="c1"&gt;# ?&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.google.com/finance&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;#driver = webdriver.Chrome()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_tables&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_css_selector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.mod&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_tables&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:]:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;====== TABLE ======&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;table …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-google.com-finance-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape gpw.pl with spółki with requests + BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-gpw.pl-with-sp%C3%B3%C5%82ki-with-requests-+-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.04.28&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61481586/how-to-scrap-the-non-loaded-content-of-the-page/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_page&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.gpw.pl/spolki&amp;quot;&lt;/span&gt;

    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;all_links&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-gpw.pl-with-spółki-with-requests-+-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape grainger.com with requests, JSON</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-grainger.com-with-requests,-JSON.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.09&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/62812282/why-arent-the-table-data-tags-available-in-the-soup/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.grainger.com/product/tableview/GRAINGER-APPROVED-Type-F-Stainless-Steel-Cam-WP11501162?breadcrumbCatId=1001429&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-grainger.com-with-requests,-JSON.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape haul.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-haul.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# https://stackoverflow.com/questions/47872975/python-web-scraping-format-cleaning/47879161#47879161&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;uReq&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;https://www.uhaul.com/Locations/Self-Storage-near-Charlotte-NC-28206/780052/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;https://www.uhaul.com/Locations/Self-Storage-near-Charlotte-NC-28212/780063/&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;u_haul.csv&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-haul.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape hedgefollow.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-hedgefollow.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.25&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62003463/web-scraping-hedge-fund-data-with-beautifulsoup&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://hedgefollow.com/funds/Duquesne+Family+Office&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;dgtopHolders&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--- headers …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-hedgefollow.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape hltv.org</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-hltv.org.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="c1"&gt;#from scrapy.commands.view import open_in_browser&lt;/span&gt;
&lt;span class="c1"&gt;#import json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="c1"&gt;#allowed_domains = []&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.hltv.org/matches&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;#def start_requests(self):&lt;/span&gt;
    &lt;span class="c1"&gt;#    self.url_template = http://quotes.toscrape.com/tag/{}/page/{}/&lt;/span&gt;
    &lt;span class="c1"&gt;#    self.tags = [&amp;#39;love&amp;#39;, &amp;#39;inspirational&amp;#39;, &amp;#39;life …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-hltv.org.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape horariodebuses.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-horariodebuses.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.13&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59710076/encode-unicode-characters-in-dict-to-send-as-data-in-a-post-request/&lt;/span&gt;

&lt;span class="c1"&gt;# page uses ISO-8859-1 &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;webbrowser&lt;/span&gt;

&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;fromClass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Golfito&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;toClass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Cañon del Guarco&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;viaClass&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;jDate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;01/12/2020&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;jTime&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;21:34&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;addtime&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;lang&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;en …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-horariodebuses.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape howmanysyllables.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-howmanysyllables.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.08&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.howmanysyllables.com/syllable_counter/&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;# open browser&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# load page&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# find field &lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;syl_input&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# put text&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello World&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# find button …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-howmanysyllables.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ikea.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ikea.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47741611/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="c1"&gt;#allowed_domains = [&amp;#39;http://www.ikea.com&amp;#39;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.ikea.com/ae/en/catalog/categories/departments/childrens_ikea/31772/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;all_products&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ikea.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ikea.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ikea.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.07&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55541971/image-src-text-scrap-and-tablescrap-from-a-webpage-using-beautifulsoup/55542309?noredirect=1#comment97819263_55542309&lt;/span&gt;

&lt;span class="c1"&gt;#------------------------------------------------------------------------------&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.ikea.com/sa/en/catalog/products/00361049/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;html.parser&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div#productDimensionsContainer …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ikea.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape indeed.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-indeed.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# &lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48031565/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.indeed.cl/trabajo?q=Data&lt;/span&gt;&lt;span class="si"&gt;%20s&lt;/span&gt;&lt;span class="s1"&gt;cientist&amp;amp;l=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//h2[@class=&amp;quot;jobtitle …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-indeed.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape inshorts.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-inshorts.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.29&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59109679/how-to-scrap-1000-news-from-https-inshorts-com-en-read-data-using-beautiful-so&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="c1"&gt;# --- first page ---&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://inshorts.com/en/read&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-inshorts.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape investing.com with request, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-investing.com-with-request,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.09.11&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;quot;furas&amp;quot; Burek (https://blog.furas.pl)&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/63840415/how-to-scrape-website-tables-where-the-value-can-be-different-as-we-chose-but-th&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://id.investing.com/instruments/HistoricalDataAjax&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;curr_id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;8830&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;smlID&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;300004&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;header&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Data+Historis+Emas+Berjangka …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-investing.com-with-request,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ishares.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ishares.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.05.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/56070434/my-code-wrongfully-downloads-a-csv-file-from-an-url-with-python/56071844#56071844&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.ishares.com/uk/individual/en/products/251567/ishares-asia-pacific-dividend-ucits-etf?switchLocale=y&amp;amp;siteEntryPassthrough=true&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;allow_redirects&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ishares.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape just-eat.fr with robobrowser</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-just-eat.fr-with-robobrowser.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.05.05&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;#39;furas&amp;#39; Burek&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;robobrowser&lt;/span&gt;

&lt;span class="n"&gt;br&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;robobrowser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RoboBrowser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;br&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;br&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.just-eat.fr&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;br&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_forms&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="n"&gt;iframe_src&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;br&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-just-eat.fr-with-robobrowser.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape kbb.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-kbb.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.06.05&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62211750/how-to-extract-text-from-svg-using-python-selenium/&lt;/span&gt;

&lt;span class="c1"&gt;# it needs IP in location US to display page&lt;/span&gt;
&lt;span class="c1"&gt;# I used free VPN https://windscribe.com/?affid=kez9ypcg with program installed on Linux Mint&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-kbb.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape koinex.in with selenium with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-koinex.in-with-selenium-with--requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- Selenium ---&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://koinex.in/&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#tables = driver.find_elements_by_tag_name(&amp;#39;table&amp;#39;)&lt;/span&gt;
&lt;span class="c1"&gt;#for item in tables:&lt;/span&gt;
&lt;span class="c1"&gt;#    print(item.text)&lt;/span&gt;

&lt;span class="c1"&gt;# --- convert cookies/headers from Selenium to Requests ---&lt;/span&gt;

&lt;span class="n"&gt;cookies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_cookies&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-koinex.in-with-selenium-with--requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape kramerav.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-kramerav.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47899992/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;



&lt;span class="n"&gt;You&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;concatenate&lt;/span&gt; &lt;span class="nb"&gt;all&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="n"&gt;inside&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;loop&lt;/span&gt;

    &lt;span class="n"&gt;all_divs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;div.large-image&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_divs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;div&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;using&lt;/span&gt; &lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;all_divs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;div&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-kramerav.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape lastsecond.ir</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-lastsecond.ir.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47956427/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="c1"&gt;#from scrapy.commands.view import open_in_browser&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="c1"&gt;#allowed_domains = []&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://lastsecond.ir/hotels&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;#def start_requests(self):&lt;/span&gt;
    &lt;span class="c1"&gt;#    self.url_template = http://quotes.toscrape.com/tag/{}/page …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-lastsecond.ir.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape legit.ng with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-legit.ng-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.09&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.legit.ng/1087216-igbo-proverbs-meaning.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;div&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;div&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;blockquote&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-legit.ng-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape lequipe.fr</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-lequipe.fr.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47761077/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;www.lequipe.fr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.lequipe.fr/Basket/RES_NBA.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-lequipe.fr.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape letterboxd.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-letterboxd.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47733374/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://letterboxd.com/shesnicky/list/top-50-favourite-films/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data-target-link&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data-target-link&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-letterboxd.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape lifestorage.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-lifestorage.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;uReq&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;https://www.lifestorage.com/storage-units/florida/orlando/32810/610-near-lockhart/?size=5x5&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;life_storage.csv&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;a+&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;csv_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;unit_size&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;unit_type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;description&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;online_price …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-lifestorage.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape listado.mercadolibre.com.pe</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-listado.mercadolibre.com.pe.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.04.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61376200/i-dont-get-all-the-product-description-data-with-scrapy/61377436#61377436&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.linkextractors&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LinkExtractor&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.spiders&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CrawlSpider&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Rule&lt;/span&gt;
&lt;span class="c1"&gt;#from mercadolibre.items import MercadolibreItem&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MercadolibreperuSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CrawlSpider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;mercadolibreperu&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;mercadolibre.com.pe …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-listado.mercadolibre.com.pe.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape livescore.in</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-livescore.in.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.03.01&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60477459/how-to-scrape-table-from-livescore-in-using-python&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;Accept&amp;#39;: &amp;#39;*/*&amp;#39;,&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;Accept-Language&amp;#39;: &amp;#39;*&amp;#39;,&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;Accept-Encoding&amp;#39;: &amp;#39;gzip, deflate, br&amp;#39;,&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;X-Referer&amp;#39;: &amp;#39;https://www …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-livescore.in.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape londonstockexchange.com with request, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-londonstockexchange.com-with-request,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: Bartłomiej &amp;quot;furas&amp;quot; Burek (https://blog.furas.pl)&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.09.08&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/63785398/web-scraping-using-python-scrapy-or-beautiful-soup-fails-to-extract-data-from-ls&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;   &lt;span class="c1"&gt;# only to display with indents (pretty print)&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.londonstockexchange.com/stock/GSK/glaxosmithkline-plc/fundamentals?lang …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-londonstockexchange.com-with-request,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape longandfoster.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-longandfoster.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.16&lt;/span&gt;
&lt;span class="c1"&gt;# link: &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MainSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;main&amp;#39;&lt;/span&gt;
    &lt;span class="c1"&gt;# allowed_domains = [&amp;#39;longandfoster.com&amp;#39;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.longandfoster.com/include/ajax/api.aspx?op=SearchAgents&amp;amp;firstname=&amp;amp;lastname=&amp;amp;page=1&amp;amp;pagesize=200&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-longandfoster.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape maharerait.mahaonline.gov.in with selenium with download PDF from object</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-maharerait.mahaonline.gov.in-with-selenium-with-download-PDF-from-object.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.07.18&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57088227/save-the-pdf-using-the-selenium-webdriver-in-python/57089444#57089444&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;By&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support.ui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;WebDriverWait&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;expected_conditions&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;EC&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.keys …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-maharerait.mahaonline.gov.in-with-selenium-with-download-PDF-from-object.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape markets.wsj.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-markets.wsj.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55604518/how-do-i-move-data-scraped-with-beautifulsoup-to-a-mysql-database/55604754#55604754&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;html_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://markets.wsj.com/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;html_doc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html_doc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;markets&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;majorStockIndexes_moduleId&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;marketRows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;markets&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tbody …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-markets.wsj.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape marketscreener.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-marketscreener.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.25&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62000520/extracting-html-data-using-python/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.marketscreener.com/MICROSOFT-CORPORATION-4835/company/&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#, headers={&amp;#39;user-agent&amp;#39;: &amp;#39;Mozilla/5.0&amp;#39;})&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-marketscreener.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape mckinsey.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-mckinsey.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47753174/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;q&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;iot&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;page&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;app&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;sort&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;default&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;ignoreSpellSuggestion&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;false&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.mckinsey.com/services/ContentAPI/SearchAPI.svc/search&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;page&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;json …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-mckinsey.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape medindia.net with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-medindia.net-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59008426/python-web-scrapping-if-using-all-scalar-values-you-must-pass-an-index&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.medindia.net/doctors/drug_information/abacavir.htm&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-medindia.net-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape medium.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-medium.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.24&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60383237/itemloader-in-scrapy/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.loader&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ItemLoader&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.spiders&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CrawlSpider&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;logging&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.utils.log&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;configure_logging&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MediumItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;Title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-medium.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape members.tsetmc.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-members.tsetmc.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47842359/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://members.tsetmc.com/tsev2/data/InstTradeHistory.aspx?i=9211775239375291&amp;amp;Top=999999&amp;amp;A=0&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# first 50 chars&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-members.tsetmc.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape merolagani.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-merolagani.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47875952/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://merolagani.com/handlers/webrequesthandler.ashx?type=get_company_graph&amp;amp;symbol=ADBL&amp;amp;dateRange=1&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;#       http://merolagani.com/handlers/webrequesthandler.ashx?type=get_company_graph&amp;amp;symbol=ADBL&amp;amp;dateRange=12&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-merolagani.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape money.cnn.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-money.cnn.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59004270/i-want-to-display-first-word-from-1st-list-and-display-10-words-from-2nd-list-an&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://money.cnn.com/data/hotstocks/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;allbody&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;class_ …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-money.cnn.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape mouthshut.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-mouthshut.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;uReq&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;By&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support.ui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;WebDriverWait&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;expected_conditions&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;EC&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-mouthshut.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape msih.bgu.ac.il with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-msih.bgu.ac.il-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.02&lt;/span&gt;
&lt;span class="c1"&gt;# ???&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;bs&lt;/span&gt;

&lt;span class="n"&gt;sauce&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://msih.bgu.ac.il/md-program/residency-placements/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sauce&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;class_&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;accord-head&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;grad_yr_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;header&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;headers …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-msih.bgu.ac.il-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape myaccount.umn.edu</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-myaccount.umn.edu.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.26&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60406035/how-to-scrape-the-details-from-a-website-based-on-the-details-in-spread-sheet&lt;/span&gt;

&lt;span class="c1"&gt;# https://pastebin.com/evjdtpuA&lt;/span&gt;
&lt;span class="c1"&gt;# https://pastebin.com/J1UaYVzt&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;scrape1&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;        
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://myaccount.umn.edu/lookup?SET_INSTITUTION=UMNTC&amp;amp;type=name&amp;amp;campus=a&amp;amp;role=any&amp;amp;CN …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-myaccount.umn.edu.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape myntra.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-myntra.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.03.05&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60547578/extract-data-from-script-tag/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;base_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.myntra.com/men-formal-shirts?f=Collar%3AButton-Down%20Collar&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;base_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.myntra.com/men-footwear&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-myntra.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape myntra.com with scrapy/2017.12.23</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-myntra.com-with-scrapy/2017.12.23.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47848134/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;www.myntra.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.myntra.com/web/v2/search/data/duke&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;#def start_requests(self):&lt;/span&gt;
    &lt;span class="c1"&gt;#    for tag in self.tags:&lt;/span&gt;
    &lt;span class="c1"&gt;#        for …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-myntra.com-with-scrapy/2017.12.23.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape myntra.com with scrapy/2019.08.14</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-myntra.com-with-scrapy/2019.08.14.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.08.14&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57490072/how-to-crawl-a-website-to-get-all-the-links-in-a-website-using-scrapy-in-python/57490431#57490072&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;MySpider&amp;quot;&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;allowed_domains&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;start_urls&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="c1"&gt;# self.name = name&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
        &lt;span class="k"&gt;else …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-myntra.com-with-scrapy/2019.08.14.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape myntra.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-myntra.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;LOGIN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;xxx@xxx.com&amp;#39;&lt;/span&gt; 
&lt;span class="n"&gt;PASSWORD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PaSwOrD&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;# --- start ---&lt;/span&gt;

&lt;span class="c1"&gt;#driver = webdriver.Chrome()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# resize window so all elements are visible &lt;/span&gt;
&lt;span class="c1"&gt;# and the is no problem to click them &lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;maximize_window&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="c1"&gt;#driver.set_window_size(1920, 1080)&lt;/span&gt;
&lt;span class="c1"&gt;#driver.execute_script(&amp;quot;window …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-myntra.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape naver.com with requests, BS, JSON</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-naver.com-with-requests,-BS,-JSON.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.09&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62807158/python-beautifulsoup-get-html-from-dynamic-page/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;script …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-naver.com-with-requests,-BS,-JSON.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nba.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nba.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.19, &lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/58938589/python-scrape-nba-tracking-drives-data&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.08.15&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="c1"&gt;#&amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0&amp;#39;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Referer&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://stats …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nba.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ncbi.nlm.nih.gov</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ncbi.nlm.nih.gov.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47706195/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="c1"&gt;# Create a variable with the url&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.ncbi.nlm.nih.gov/protein/EGW15053.1?report=fasta&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;# Use requests to get the contents&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Get …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ncbi.nlm.nih.gov.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape news18.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-news18.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.21&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61935547/saving-output-the-to-json-format/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;webpreview&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenGraph&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;News18SSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;news18_story&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;page_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.news18.com/movies/page-&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;/&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;21 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-news18.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nfl.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nfl.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://api.nfl.com/v3/shield/?query=%20query&lt;/span&gt;&lt;span class="si"&gt;%20%&lt;/span&gt;&lt;span class="s1"&gt;7B%20viewer&lt;/span&gt;&lt;span class="si"&gt;%20%&lt;/span&gt;&lt;span class="s1"&gt;7B&lt;/span&gt;&lt;span class="si"&gt;%20s&lt;/span&gt;&lt;span class="s1"&gt;tandings(first%3A1%2CorderBy%3Aweek__weekValue%2CorderByDirection%3ADESC%2Cweek_seasonValue%3A2016%2Cweek_seasonType%3AREG%2C)&lt;/span&gt;&lt;span class="si"&gt;%20%&lt;/span&gt;&lt;span class="s1"&gt;7B&lt;/span&gt;&lt;span class="si"&gt;%20e&lt;/span&gt;&lt;span class="s1"&gt;dges&lt;/span&gt;&lt;span class="si"&gt;%20%&lt;/span&gt;&lt;span class="s1"&gt;7B&lt;/span&gt;&lt;span class="si"&gt;%20c&lt;/span&gt;&lt;span class="s1"&gt;ursor%20node&lt;/span&gt;&lt;span class="si"&gt;%20 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nfl.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nhc.noaa.gov with requests, BS, download</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nhc.noaa.gov-with-requests,-BS,-download.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.08.02&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/63214832/extract-table-and-especially-files-from-webpage-with-python/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ocean&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;atlantic&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;all_oceans&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;atlantic&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;eastern pacific&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;central pacific&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;ocean&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ocean&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# check …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nhc.noaa.gov-with-requests,-BS,-download.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nnbulgaria.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nnbulgaria.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.04.23&lt;/span&gt;
&lt;span class="c1"&gt;#https://stackoverflow.com/questions/61374853/scrape-dynamic-web-page-with-python-input-dates/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;#url = &amp;#39;https://www.nnbulgaria.com/life-insurance/insurance-plans/investment-insurance-nn-pro/value-of-investment-unit&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;#url = &amp;#39;https://www.nnbulgaria.com/Orchard.Nn/public/chartsUVData?chart-startdate=2004-06-01&amp;amp;chart-enddate=2020-04-23&amp;amp;value-per-share-type=LiPro&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nnbulgaria.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nowgoal.group</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nowgoal.group.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.31&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/63180481/scraping-basketball-results-and-associate-related-competition-to-each-match/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;lxml.etree&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://www.nowgoal.group/GetNbaWithTimeZone.aspx?date=2020-07-29&amp;amp;timezone=2&amp;amp;kind=0&amp;amp;t=1596143185000&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nowgoal.group.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nseindia.com with requests/example with 1</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-1.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.04.22&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55788117/how-scrape-a-website-in-which-i-post-information/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="c1"&gt;#import json&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;dirtyjson&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://nseindia.com/corporates/corpInfo/equities/getAnnouncements.jsp?period=Latest%20Announced&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#data = r.json() # doesn&amp;#39;t work because …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-1.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nseindia.com with requests/example with 2</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-2.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: ???&lt;/span&gt;
&lt;span class="c1"&gt;# ???&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.nseindia.com/products/content/derivatives/equities/historical_fo.htm&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.nseindia.com/products/dynaContent/common/productsSymbolMapping.jsp?instrumentType=FUTIDX&amp;amp;symbol=NIFTY&amp;amp;expiryDate …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-2.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nseindia.com with requests/example with 3</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-3.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.06&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59205601/how-to-download-a-file-using-web-url-in-python-download-through-browser-works-b&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# need header to download&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.nseindia.com/products/content/sec_bhavdata_full.csv&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#print(r.content …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-3.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nseindia.com with requests/example with 4 with expire day</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-4-with-expire-day.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.03&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59577693/collect-the-dropdown-list-from-link-using-request/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;lxml.html&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?segmentLink=17&amp;amp;instrument=OPTIDX&amp;amp;symbol=BANKNIFTY&amp;amp;date=9JAN2020&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lxml …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-4-with-expire-day.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nseindia.com with requests/example with 5</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-5.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59683802/unable-to-scrape-tabular-data-in-nse/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www1.nseindia.com/live_market/dynaContent/live_analysis/changePercentage.json&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;rows&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;advances …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-5.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nseindia.com with requests/example with 6 with chart</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-6-with-chart.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: Bartłomiej &amp;quot;furas&amp;quot; Burek (https://blog.furas.pl)&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.08.12&lt;/span&gt;
&lt;span class="c1"&gt;# link: (stackoverflow) https://stackoverflow.com/questions/63362688/how-can-i-grab-data-from-a-nse-chart-with-python/&lt;/span&gt;

&lt;span class="c1"&gt;# https://www.nseindia.com/get-quotes/equity?symbol=BERGEPAINT&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.nseindia.com/api …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nseindia.com-with-requests/example-with-6-with-chart.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape nytimes.com with requests, BS, concurrent</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-nytimes.com-with-requests,-BS,-concurrent.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.07.16&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/62941657/how-can-i-return-the-data-im-scraping-when-using-beautifulsoup-and-concurrent-f/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;concurrent.futures&lt;/span&gt;

&lt;span class="c1"&gt;# --- constants ---&lt;/span&gt;

&lt;span class="n"&gt;MAX_THREADS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="c1"&gt;# grab all of the recipe cards on each search page&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;extract_recipe_urls&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;returns a list of recipe urls …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-nytimes.com-with-requests,-BS,-concurrent.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ofri.ch</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ofri.ch.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47948138/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="c1"&gt;#from scrapy.commands.view import open_in_browser&lt;/span&gt;
&lt;span class="c1"&gt;#import json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;www.ofri.ch/firmen&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.ofri.ch/firmen/Abbruchunternehmen/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;#def start_requests(self):&lt;/span&gt;
    &lt;span class="c1"&gt;#    self.url_template …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ofri.ch.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape oldnavy.gap.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-oldnavy.gap.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2016.11.24 (update: 2020.06.13)&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/40777864/retrieving-all-information-from-page-beautifulsoup/&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="c1"&gt;# --- get page ---&lt;/span&gt;

&lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://oldnavy.gap.com/browse/category.do?cid=1035712&amp;amp;sop=true&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;#driver …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-oldnavy.gap.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape olx.co.id</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-olx.co.id.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.09.17&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;spidyquotes&amp;#39;&lt;/span&gt;
        &lt;span class="n"&gt;quotes_base_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.olx.co.id/api/relevance/search?category=198&amp;amp;facet_limit=100&amp;amp;location=1000001&amp;amp;location_facet_limit=20&amp;amp;page=&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
        &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;quotes_base_url&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;download_delay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.5&lt;/span&gt;
        &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-olx.co.id.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape onthemarket.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-onthemarket.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47751535/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;QuotesSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;quotes&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;www.onthemarket.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.onthemarket.com/for-sale/property/london/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;

        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;gt;&amp;gt;&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;link&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# it …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-onthemarket.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape otomoto.pl with cars with scrapy with meta</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-otomoto.pl-with-cars-with-scrapy-with-meta.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.loader&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ItemLoader&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.loader.processors&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TakeFirst&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;MapCompose&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.shell&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;inspect_response&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OtomotoItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Item&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;brand&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;features&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Field …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-otomoto.pl-with-cars-with-scrapy-with-meta.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ouac.on.ca</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ouac.on.ca.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47874829/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;webbrowser&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# to see this HTML in web browser&lt;/span&gt;
    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;temp.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wb&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;webbrowser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;temp.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;session …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ouac.on.ca.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape pagesjaunes.fr</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-pagesjaunes.fr.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47774713/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;myspider&amp;quot;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;www.pagesjaunes.fr&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;www.pagesjaunes.com&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;start_requests&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

        &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.pagesjaunes.fr/annuaire/chercherlespros?quoiqui=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;ou=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;amp;page=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-pagesjaunes.fr.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape pardo.ch with scrapy with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-pardo.ch-with-scrapy-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48017424/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://pardo.ch&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://pardo.ch/pardo/program/archive/2017/catalog-films.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;# to display number of pages&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-pardo.ch-with-scrapy-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape pixabay.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-pixabay.com-with--requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.09.07&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;quot;furas&amp;quot; Burek (https://blog.furas.pl)&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/63767927/cant-scrape-some-static-image-links-from-a-webpage-using-requests&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-pixabay.com-with--requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape playnj.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-playnj.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.10&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59682409/trouble-scraping-a-table-with-python-beautifulsoup/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.playnj.com/atlantic-city/revenue/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;User-Agent&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Mozilla/5.0&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="c1"&gt;#print(r.status_code)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-playnj.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape pokemondb.net with requests, pandas</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-pokemondb.net-with-requests,-pandas.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.08&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.pokemondb.net/pokedex/all&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;dfs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;dfs&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-pokemondb.net-with-requests,-pandas.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape poloniex.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-poloniex.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://poloniex.com/public&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;command&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;returnTradeHistory&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;currencyPair&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;BTC_NXT&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;start&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1410158341&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;end&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1410499372&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;-----&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data lenght:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;-----&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-poloniex.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape properties.kimcorealty.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-properties.kimcorealty.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;unicodedata&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DataFrame&lt;/span&gt;

&lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://properties.kimcorealty.com/property/output/find/search4/view:list/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;table_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="c1"&gt;# all rows in table except first ([1 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-properties.kimcorealty.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape psacard.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-psacard.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.08&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55576576/scraping-table-with-scrapy&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PsaSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;psa&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;psacard.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.psacard.com/pop/t206/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;table.pop-grid tbody tr&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rows …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-psacard.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape pub.insure.or.kr with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-pub.insure.or.kr-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.26&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59043401/i-want-web-crawling-from-ajaxpython&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://pub.insure.or.kr/compareDis/variableInsrn/fundDay/fundInfoViewPopup.do?stdYmd=20191125&amp;amp;memberCd=L71&amp;amp;fundCd=KLVL71FD25O&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# to keep cookies …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-pub.insure.or.kr-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape quotes.toscrape.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-quotes.toscrape.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;lxml.html&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_top_tags&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;all_items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.//span[@class=&amp;quot;tag-item&amp;quot;]/a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text_content&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;-&amp;gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attrib&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;href&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_queues&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;all_items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.//div[@class=&amp;quot;quote&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

        &lt;span class="n"&gt;all_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findall …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-quotes.toscrape.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ratemds.com with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ratemds.com-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.07.01&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62672619/scrapy-extracting-data-using-response-text&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.ratemds.com/doctor-ratings/dr-zach-olesinski-toronto-on-ca&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;#print(r.status_code)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ratemds.com-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape registration.pseb.ac.in</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-registration.pseb.ac.in.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# attribute &amp;quot;rel&amp;quot; returns as list &lt;/span&gt;
&lt;span class="c1"&gt;# see: https://www.crummy.com/software/BeautifulSoup/bs4/doc/#multi-valued-attributes&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47940166/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;SchoolType&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Dist1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Sch1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;SearchString&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-registration.pseb.ac.in.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape rentfaster.ca with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-rentfaster.ca-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;city_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;display_item&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;title:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;title&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bedrooms:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bedrooms&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;price:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;price&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;size:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sq_feet&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.rentfaster.ca/api/search.json?proximity_type=location-city&amp;amp;novacancy …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-rentfaster.ca-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape researchgrant.gov.sg with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-researchgrant.gov.sg-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.12&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59259699/scrapy-formrequest-parameter-not-working-but-showing-all-result-instead/&lt;/span&gt;
&lt;span class="c1"&gt;# page: https://researchgrant.gov.sg/eservices/advanced-search/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;
    &lt;span class="c1"&gt;#allowed_domains = []&lt;/span&gt;

    &lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;advancesearchawardedprojectsp&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;args&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;keyword&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;source&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sharepoint&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;type&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;project&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;status …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-researchgrant.gov.sg-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape rolltide.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-rolltide.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/urs/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.10.12&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/58349843/im-trying-to-scrape-college-football-team-rosters-into-an-excel-file-and-need-h&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://rolltide.com/roster.aspx?roster=226&amp;amp;path=football&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;#driver = webdriver.Firefox()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_names&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sidearm-roster-player-name&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_positions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_class_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sidearm-roster-player-position&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;all_hometowns …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-rolltide.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape rottentomatoes.com with urllib, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-rottentomatoes.com-with-urllib,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# author: https://blog.furas.pl&lt;/span&gt;
&lt;span class="c1"&gt;# date: 2020.07.28&lt;/span&gt;
&lt;span class="c1"&gt;# link: https://stackoverflow.com/questions/63125987/how-do-i-continue-printing-all-top-100-movies-from-rotten-tomatoes&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; 
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;my_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.rottentomatoes.com/top/bestofrt/&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;# grabbing connection&lt;/span&gt;
&lt;span class="n"&gt;req&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;req …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-rottentomatoes.com-with-urllib,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape rtrs.tv</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-rtrs.tv.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.rtrs.tv/vijesti/index.php&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;with …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-rtrs.tv.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape santhosh.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-santhosh.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47910852/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.linkextractors&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LinkExtractor&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.selector&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Selector&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.spiders&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Rule&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CrawlSpider&lt;/span&gt;
&lt;span class="c1"&gt;#from scrapy.commands.view import open_in_browser&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CrawlSpider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;MySpider&amp;#39;&lt;/span&gt; 

    &lt;span class="n"&gt;handle_httpstatus_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;301&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;302 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-santhosh.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape sec.gov</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-sec.gov.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47742578/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47614478/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;


&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.sec.gov/Archives/edgar/data/320193/000119312515356351/d17062d10k.htm&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;# &amp;quot;lxml …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-sec.gov.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape seedly.sg</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-seedly.sg.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.02&lt;/span&gt;
&lt;span class="c1"&gt;# ???&lt;/span&gt;

&lt;span class="c1"&gt;# count stars &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt; 

&lt;span class="n"&gt;browser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://seedly.sg/reviews/p2p-lending/funding-societies&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;star_count_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="n"&gt;rating_column&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//div[contains(@class,&amp;quot;qr0ren-7 euifNX&amp;quot;)]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rating_column&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;stars&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-seedly.sg.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape shipandbunker.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-shipandbunker.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.09.12&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57913629/scrap-dynamic-chart-data/57914736#57914736&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;

&lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2019&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;api-method&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pricesForAllSeriesGet&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;resource&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;MarketPriceGraph_Block&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;mc0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;NL RTM&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;mc1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;AV G20&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://shipandbunker.com/a/.json&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-shipandbunker.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape shopee.com.my</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-shopee.com.my.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.14&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.common.action_chains&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ActionChains&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://shopee.com.my/search?keyword=mattress&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# select language&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//div …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-shopee.com.my.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape shopee.tw</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-shopee.tw.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.02&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59557071/how-can-i-crawl-the-product-items-from-shopee-website/59557626#59557626&lt;/span&gt;

&lt;span class="c1"&gt;# Without `Referer` it doesn&amp;#39;t send price&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://shopee.tw/api/v2/search_items/?by=pop&amp;amp;limit=30&amp;amp;match_id=1819984&amp;amp;newest=0&amp;amp;order=desc&amp;amp;page_type …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-shopee.tw.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape snapdeal.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-snapdeal.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/48035123/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.commands.view&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;open_in_browser&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.snapdeal.com/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;#open_in_browser(response)&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-snapdeal.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape soundcloud.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-soundcloud.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.05.07&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;#39;furas&amp;#39; Burek&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/56012860/first-scrapy-spider/56014596#56014596&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.http&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;soundcloud.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;https://api-v2.soundcloud.com …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-soundcloud.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape spaceflightnow.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-spaceflightnow.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.17&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urljoin&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.chrome.options&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Options&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_links&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;driver …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-spaceflightnow.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape spotifychart.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-spotifychart.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.16&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55699472/web-scraping-python-indexing-issue-for-dataframe/55700180#55700180&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;base_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://spotifycharts.com/regional/global/daily/&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;chart&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;table …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-spotifychart.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ssense.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ssense.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;start_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.ssense.com/en-us/men/sneakers&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;start_url&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="c1"&gt;# replace &amp;#39;__IMAGE_PARAMS__&amp;#39; with parameters which I found in DevTool&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;b_white,c_lpad,g_center,h_960,w_960/c_scale,h_680 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ssense.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape std.stheadline.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-std.stheadline.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59003700/pythonon-ajax-php-prase-result-is-different-from-on-screen-result&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;http://std.stheadline.com/daily/ajax/ajaxFormerly.php&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;startDate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2019-11-20&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;endDate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;2019-11-22&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;type[]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;15&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;keyword&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nb"&gt;print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-std.stheadline.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape steamcommunity.com-market with BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-steamcommunity.com-market-with-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.28&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62056266/steam-market-parsing&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://steamcommunity.com/market/search?q=&amp;amp;category_730_ItemSet%5B%5D=any&amp;amp;category_730_ProPlayer%5B%5D=any&amp;amp;category_730_StickerCapsule%5B%5D=any&amp;amp;category_730_TournamentTeam …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-steamcommunity.com-market-with-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape steamdb.info</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-steamdb.info.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.17&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;User-Agent&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://steamdb.info/upcoming/free/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-steamdb.info.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape tatoeba.org</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-tatoeba.org.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.24&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60372726/scraping-dictionary-entries-using-pythons-beautifulsoup/&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="c1"&gt;#as BS&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Verwirrung&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://tatoeba.org/eng/sentences/search?query=&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s2"&gt;&amp;amp;from=und&amp;amp;to=spa&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;vstr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-tatoeba.org.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape textnow.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-textnow.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.12.08&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59238605/finding-page-element-using-seleniumpython&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.textnow.com/login&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//input[@id=&amp;quot;txt-username&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;your_login&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_element_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//input …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-textnow.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape tienda.mimo.com.ar</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-tienda.mimo.com.ar.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://tienda.mimo.com.ar/mimo/junior/ropa-para-ninas.html&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;Accept&amp;#39;: &amp;#39;text/html,application/xhtml+xml,application/xml;q …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-tienda.mimo.com.ar.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape todywallaauctions.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-todywallaauctions.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.09.16&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57950834/dynamic-web-scrapping-in-python-with-unchanging-url&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.todywallaauctions.com/Results.aspx/getSearchResult&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;pageSize&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;15&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;pageTop&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;whereCondition&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;; @MotherCategory = Coins &amp;amp; Paper Money&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nb"&gt;print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-todywallaauctions.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape topdrawersoccer.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-topdrawersoccer.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.10.29&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;max_page_num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="n"&gt;max_page_dig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# number of digits in the page number&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;result.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Name, Gender, State, Position, Grad, Club/HS, Rating, Commitment&lt;/span&gt;&lt;span class="se"&gt;\n …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-topdrawersoccer.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape trackalytics.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-trackalytics.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3.7&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.06&lt;/span&gt;
&lt;span class="c1"&gt;# ???&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_page&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.trackalytics.com/the-most-followed-instagram-profiles/page/&lt;/span&gt;&lt;span class="si"&gt;{}&lt;/span&gt;&lt;span class="s1"&gt;/&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-trackalytics.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape transfermarkt.co.uk</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-transfermarkt.co.uk.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.03.05&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://www.S/ederson/profil/spieler/238223&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;user-agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mozilla/5.0&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;table&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;class&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;auflistung …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-transfermarkt.co.uk.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape transfermarkt.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-transfermarkt.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.05.05&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;#39;furas&amp;#39; Burek&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55992681/how-to-scrape-a-website-table-where-the-cell-values-have-the-same-class-name&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;


&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;data of birth&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;height&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;foot&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;joined&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;contract until&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Linux x86_64) AppleWebKit …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-transfermarkt.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape translate.google.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-translate.google.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47706550/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Chrome&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;E:\Tutorial\Driver\chromedriver.exe&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;girl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cat&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dog&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;bird&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;man&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;word&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://translate.google.com.eg/?hl=en&amp;amp;tab=wT#en/fr …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-translate.google.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape travel.padi.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-travel.padi.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.30&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59113577/selenium-in-python-finding-an-element-via-relative-xpath&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://travel.padi.com/s/liveaboards/caribbean/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_cards&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//div[@class=&amp;quot;boat search-page-item-card &amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;card&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_cards&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;card …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-travel.padi.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape tripadvisor.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-tripadvisor.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.10.25&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/58550908/python-click-more-button-is-not-working&lt;/span&gt;

&lt;span class="c1"&gt;#from bs4 import BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ActionChains&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt;

&lt;span class="c1"&gt;#Incognito Mode&lt;/span&gt;
&lt;span class="n"&gt;option&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ChromeOptions&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;option&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;--incognito&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#Open Chrome&lt;/span&gt;
&lt;span class="c1"&gt;#driver = webdriver.Chrome(executable_path=&amp;quot;C:/Users …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-tripadvisor.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape ubereats.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-ubereats.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.05.08&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/61673305/requests-scrap-of-url-returns-404-even-with-headers-and-page-definitely-exists/&lt;/span&gt;

&lt;span class="c1"&gt;# this page needs header `Accept` &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;#    &amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0&amp;#39;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;Accept&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-ubereats.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape udemy.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-udemy.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Query [python]: &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;python&amp;#39;&lt;/span&gt; 

&lt;span class="n"&gt;only_free&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Only free [Y/n]: &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;only_free&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;only_free&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;n&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;only_free&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;max_price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Max price [100]: &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;max_price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_price&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;#&amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-udemy.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape uhaul.com with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-uhaul.com-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47879161/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;uReq&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;https://www.uhaul.com/Locations/Self-Storage-near-Charlotte-NC-28206/780052/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;https://www.uhaul.com/Locations/Self-Storage-near-Charlotte-NC-28212/780063/&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;u_haul.csv …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-uhaul.com-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape uprera.azurewebsites.net with requests with ASP.net</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-uprera.azurewebsites.net-with-requests-with-ASP.net.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47942411/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;final_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://uprera.azurewebsites.net/View_projects.aspx&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;html.parser&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;VIEWSTATE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select_one&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;#__VIEWSTATE&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;EVENTVALIDATION …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-uprera.azurewebsites.net-with-requests-with-ASP.net.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape upwork.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-upwork.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Session&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.upwork.com/ab/account-security/login&amp;#39;&lt;/span&gt;

&lt;span class="c1"&gt;# Create session to keep all cookies&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-upwork.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape usda.library.cornell.edu with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-usda.library.cornell.edu-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.08.25&lt;/span&gt;
&lt;span class="c1"&gt;# author: Bartłomiej &amp;quot;furas&amp;quot; Burek (https://blog.furas.pl)&lt;/span&gt;
&lt;span class="c1"&gt;# link: (stackoverflow) https://stackoverflow.com/questions/63578637/is-there-a-way-to-extract-date-along-with-link/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="c1"&gt;# --- functions ---&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;Get links and dates for one page&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;

    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="n"&gt;all_rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;#release-items tr …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-usda.library.cornell.edu-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape usfigureskating.org</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-usfigureskating.org.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47849047/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.usfigureskating.org/leaderboard/results/2018/25073/SEGM001.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;lt;&amp;lt;+&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-usfigureskating.org.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape vanglaini.org with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-vanglaini.org-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.10.12&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; 
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.vanglaini.org/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;article&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;article&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;article&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;continue …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-vanglaini.org-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape voorraadmodule.vwe-advertentiemanager.nl</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-voorraadmodule.vwe-advertentiemanager.nl.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47852250/1832058&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://voorraadmodule.vwe-advertentiemanager.nl/s9376368b43e8fd6a8025bfa284d8e732/e7c2/stock/vehicles/100/&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;img_pre_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://voorraadmodule.vwe-advertentiemanager.nl/s4c74bf131813e9d7d3232b46224830a2&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;getpage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;getpage&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;html.parser&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;listingparse&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-voorraadmodule.vwe-advertentiemanager.nl.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape vudu.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-vudu.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/a/47898209/1832058&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;https://www.vudu.com/&amp;quot;&lt;/span&gt;

&lt;span class="c1"&gt;#chromedriver = &amp;#39;C:\\chromedriver.exe&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;#browser = webdriver.Chrome(chromedriver)&lt;/span&gt;
&lt;span class="n"&gt;browser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--- Selenium ---&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_elements_by_css_selector …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-vudu.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape washingtonpost.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-washingtonpost.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.spiders&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SitemapSpider&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SitemapSpider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="n"&gt;sitemap_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://www.washingtonpost.com/news-politics-sitemap.xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;sitemap_rules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;trump&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;parse_article&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse_article&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;parse_article url:&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# --- it runs without project and saves …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-washingtonpost.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape weather.com</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-weather.com.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.22&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55790002/attempting-to-grab-certain-elements/55790313#55790313&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;lxml.html&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://weather.com/weather/tenday/l/USCA1037:1:US&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;element_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lxml&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fromstring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;element_object&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//div[@class=&amp;quot;twc-table-scroller&amp;quot;]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;td …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-weather.com.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape westmanska.se</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-westmanska.se.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.03.05&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60548952/python-beautifulsoup-find-between-tags/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://westmanska.se/dagens-lunch/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;h1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_next_siblings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;p …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-westmanska.se.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wickes.co.uk</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wickes.co.uk.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.16&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60249794/cant-figure-out-what-is-wrong-with-this-spider&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Spider&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.http&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Request&lt;/span&gt;

&lt;span class="c1"&gt;# Define spider settings&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WickesSpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wickes&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;allowed_domains&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;wickes.co.uk&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;start_urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.wickes.co.uk/Products/Building-Materials …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wickes.co.uk.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with Districts_of_Hong_Kong with subpages with Latitude longtitude</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-Districts_of_Hong_Kong-with-subpages-with-Latitude-longtitude.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.26&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/60408917/how-to-scrape-data-from-different-wikipedia-pages/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse_district&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;href&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;re …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-Districts_of_Hong_Kong-with-subpages-with-Latitude-longtitude.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with Events with BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-Events-with-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.06.17&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62420416/web-scraping-with-bs4-how-to-set-a-range-of-where-to-look/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt;

&lt;span class="n"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://en.wikipedia.org/wiki/2020&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;raise_for_status&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bs4&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;res&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# found start of data `h2`&lt;/span&gt;
&lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-Events-with-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with SP500 with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-SP500-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;bs&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;dt&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas_datareader.data&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;web&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pickle&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;save_sp500_tickers&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://en.wikipedia.org/wiki/List_of_S%26P_500_companies&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;lxml&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-SP500-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with SP500 with requests, BS/example-2</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-SP500-with-requests,-BS/example-2.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3 &lt;/span&gt;

&lt;span class="c1"&gt;# date: 2019.11.23&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59003872/running-for-loop-and-skipping-stocks-with-keyerror-date&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timedelta&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;urllib.request&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pandas_datareader&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;web&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://en.wikipedia …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-SP500-with-requests,-BS/example-2.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with infobox with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-infobox-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# 2020.06.30&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62632892/extracting-table-data-from-wikipedia-api/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib3&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;urllib3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;disable_warnings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exceptions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;InsecureRequestWarning&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://en.wikipedia.org/wiki/Rahul_Gandhi&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;#url = &amp;#39;https://en.wikipedia.org/wiki/Sonia_Gandhi&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;session …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-infobox-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with pandas</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-pandas.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.18&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pandas.io.html&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;read_html&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://en.wikipedia.org/wiki/List_of_Game_of_Thrones_episodes&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;wikitables&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;read_html&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index_col&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;attrs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;class&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;wikitable plainrowheaders wikiepisodetable&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Extracted &lt;/span&gt;&lt;span class="si"&gt;{num}&lt;/span&gt;&lt;span class="s2"&gt; wikitables&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;wikitables&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt; &lt;span class="ow"&gt;in …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-pandas.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wikipedia.org with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wikipedia.org-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.07.19&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/57107634/python-extract-information-from-html&lt;/span&gt;

&lt;span class="c1"&gt;# https://2.python-requests.org/en/master/&lt;/span&gt;
&lt;span class="c1"&gt;# https://www.crummy.com/software/BeautifulSoup/bs4/doc/&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://en.wikipedia.org/wiki/Microsoft&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wikipedia.org-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wordpress.org with support with BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wordpress.org-with-support-with-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.06.14&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62373373/bs4-fetching-thread-titles-description-plus-more-from-wordpress-org-support-fo&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;

&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;User-Agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="c1"&gt;# this page needs header &amp;#39;User-Agent` &lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://wordpress.org/support/plugin …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wordpress.org-with-support-with-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape wordtopdf.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-wordtopdf.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2019.04.09&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/55595886/uploading-file-using-python-selenium-system-via-system-window/55599493#55599493&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;

&lt;span class="n"&gt;your_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/furas/file.doc&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;your_email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;furas@tlen.pl&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.wordtopdf.com/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# it opens system window for uploading file …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-wordtopdf.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape yeezysupply.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-yeezysupply.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.02.27&lt;/span&gt;
&lt;span class="c1"&gt;# &lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chrome&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Options&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_argument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-yeezysupply.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape yellowpages.my with requests, BS, lxml</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-yellowpages.my-with-requests,-BS,-lxml.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.16&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59762473/using-webdriver-in-beautifulsoup-for-web-scraping&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;BS&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;
&lt;span class="c1"&gt;#import webbrowser&lt;/span&gt;

&lt;span class="n"&gt;MAX_PAGE_NUM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="c1"&gt;#headers = {&lt;/span&gt;
&lt;span class="c1"&gt;#  &amp;quot;user-agent&amp;quot;: &amp;quot;Mozilla/5.0 (X11; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-yellowpages.my-with-requests,-BS,-lxml.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape yellowpages.my with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-yellowpages.my-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# date: 2020.01.16&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/59762473/using-webdriver-in-beautifulsoup-for-web-scraping&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;MAX_PAGE_NUM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="c1"&gt;#driver = webdriver.Chrome()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;results.csv&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;csv_writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;csv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;csv_writer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writerow&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Bussiness Name …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-yellowpages.my-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape yelp.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-yelp.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;start_requests&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.yelp.com/biz_photos/ess-a-bagel-new-york&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;urls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;?category=food&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;callback&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# small …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-yelp.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape yelp.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-yelp.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;


&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib.parse&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.yelp.com/biz/daeho-kalbijjim-and-beef-soup-san-francisco-9?osq=Restaurants&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.yelp.com/biz/san-tung-san-francisco-2?page_src=related_bizes&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.yelp.com/biz/skool-san-francisco?page_src=related_bizes&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-yelp.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape youtube with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-youtube-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;

&lt;span class="n"&gt;url_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;aM7aW0G58CI&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://www.youtube.com/watch?v=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;url_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;lxml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# to concatenate &amp;lt;br&amp;gt; &lt;/span&gt;
&lt;span class="n"&gt;br&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find_all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;p&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;eow-description&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;child&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;children …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-youtube-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape zamzar.com with selenium</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-zamzar.com-with-selenium.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;selenium.webdriver.support.ui&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Select&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;your_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/home/furas/Obrazy/37884728_1975437959135477_1313839270464585728_n.jpg&amp;quot;&lt;/span&gt;
&lt;span class="c1"&gt;#your_file = &amp;quot;/home/you/file.jpg&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;output_format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;png&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.zamzar.com/&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;selenium&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;webdriver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Firefox&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#--- file --- &lt;/span&gt;

&lt;span class="c1"&gt;# it has to wait because …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-zamzar.com-with-selenium.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape zdravi.doktorka.cz with requests, BS</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-zdravi.doktorka.cz-with-requests,-BS.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# date: 2020.07.01&lt;/span&gt;
&lt;span class="c1"&gt;# https://stackoverflow.com/questions/62667459/python-web-scraper-gives-the-same-page-as-the-response&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;csv&lt;/span&gt;

&lt;span class="n"&gt;URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://zdravi.doktorka.cz/clanky?page=0&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;HEADERS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;user-agent&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-zdravi.doktorka.cz-with-requests,-BS.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape zipnet.in with requests</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-zipnet.in-with-requests.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sleep&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://zipnet.in/index.php?page=missing_person_search&amp;amp;criteria=browse_all&amp;amp;Page_No=1&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;soup&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;all_tables&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;soup&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;table&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;all_tables&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--- table ---&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;all_rows …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-zipnet.in-with-requests.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Python: How to scrape zomato.com with scrapy</title><link>https://blog.furas.pl/python-scaping-how-to-scrape-zomato.com-with-scrapy.html</link><description>&lt;p&gt;It is example code to scrape it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;scrapy&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;scrapy.http&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FormRequest&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MySpider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scrapy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Spider&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;myspider&amp;#39;&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;start_requests&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;urls&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="c1"&gt;#&amp;#39;https://www.zomato.com/new-york-city/waldys-wood-fired-pizza-penne-chelsea-manhattan/photos&amp;#39;&lt;/span&gt;
            &lt;span class="s1"&gt;&amp;#39;https://www.zomato.com/new-york-city/cafeteria-chelsea-manhattan/photos&amp;#39;&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;urls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="c1"&gt;#url = url + &amp;#39;?category=food …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jan 2020 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2020-01-01:/python-scaping-how-to-scrape-zomato.com-with-scrapy.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>requests</category><category>lxml</category><category>beautifusoup</category><category>scrapy</category><category>selenium</category></item><item><title>Scraping: Python tools and modules for scraping</title><link>https://blog.furas.pl/python-scraping-tools-and-modules-for-scraping-gb.html</link><description>&lt;p&gt;Last update: 2022.03.28 &lt;/p&gt;
&lt;hr&gt;
&lt;!--
&lt;div class="center"&gt;
&lt;img class="lazyload" data-src="/images/python/python-turtle-kolorowy-okrag-1.png" alt="python"/&gt;
&lt;/div&gt;
--&gt;

&lt;h2&gt;Get HTML from server&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://docs.python.org/3/library/urllib.request.html"&gt;urllib.request&lt;/a&gt; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;standard module, preinstalled with Python&lt;/li&gt;
&lt;li&gt;some operations need more code than &lt;code&gt;requests&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;it has &lt;code&gt;urlretrive()&lt;/code&gt; to download file &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://requests.readthedocs.io/"&gt;Requests&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;popular module which makes life easier&lt;/li&gt;
&lt;li&gt;extensions and modifications&lt;ul&gt;
&lt;li&gt;&lt;a href="https://requests-html.kennethreitz.org/"&gt;requests-html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/encode/requests-async"&gt;requests-async&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/requests/requests-threads"&gt;requests-threads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ross/requests-futures"&gt;requests-futures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/spyoungtech/grequests"&gt;grequests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://toolbelt.readthedocs.io/"&gt;requests_toolbelt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;!-- https://stackoverflow.com/questions/2632520/what-is-the-fastest-way-to-send-100-000-http-requests-in-python --&gt; 
&lt;!-- &lt;a href="https://aiohttp.readthedocs.io/"&gt;AIOHTTP&lt;/a&gt; --&gt;
&lt;!-- &lt;a href="https://github.com/chardet/chardet"&gt;chardet&lt;/a&gt; --&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Search data in HTML&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/"&gt;BeautifulSoup …&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sun, 15 Dec 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-12-15:/python-scraping-tools-and-modules-for-scraping-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category></item><item><title>Python: How to get screenshot with pyscreenshot</title><link>https://blog.furas.pl/python-how-to-get-screenshot-with-pyscreenshot-gb.html</link><description>&lt;p&gt;Not all modules can works on Linux.&lt;/p&gt;
&lt;p&gt;This module works on different systems and may use different programs. &lt;/p&gt;
&lt;p&gt;On Linux it may use external programs like &lt;code&gt;scrot&lt;/code&gt;, &lt;code&gt;gnome-screenshot&lt;/code&gt;, &lt;code&gt;imagemagick&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pyscreenshot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;ImageGrab&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ImageGrab&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backends&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="c1"&gt;# fullscreen&lt;/span&gt;
&lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ImageGrab&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;grab&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;backend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;scrot&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# to file&lt;/span&gt;
&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;im.png&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# directly to …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 10 Dec 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-12-10:/python-how-to-get-screenshot-with-pyscreenshot-gb.html</guid><category>Python</category><category>python</category></item><item><title>Python: Jak zrobić zrzut ekranu z pyscreenshot</title><link>https://blog.furas.pl/python-jak-zrobic-zrzut-ekranu-z-pyscreenshot.html</link><description>&lt;p&gt;Nie wszystkie moduły, które robią zrzuty ekranu potrafią działać pod Linux.&lt;/p&gt;
&lt;p&gt;Ten moduł działa na różnych systemach i może używać różnych programów. &lt;/p&gt;
&lt;p&gt;Pod Linux może używać takich programów zewnętrznych jak &lt;code&gt;scrot&lt;/code&gt;, &lt;code&gt;gnome-screenshot&lt;/code&gt;, &lt;code&gt;imagemagick&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pyscreenshot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;ImageGrab&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ImageGrab&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;backends&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;

&lt;span class="c1"&gt;# fullscreen&lt;/span&gt;
&lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ImageGrab&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;grab&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;backend&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;scrot&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# to file&lt;/span&gt;
&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 10 Dec 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-12-10:/python-jak-zrobic-zrzut-ekranu-z-pyscreenshot.html</guid><category>Python</category><category>python</category></item><item><title>Python: How to use AJAX in Flask using jQuery.</title><link>https://blog.furas.pl/python-how-to-use-ajax-in-flask-using-jquery-gb.html</link><description>&lt;p&gt;After all there was two problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;HTML wasn't serve from flask/server. And browser could block it for security reason. I put HTML directly in function index() but later you can use render_template("filename.html")&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;you forgot to load javascript jQuery library.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Other: &lt;a href="https://stackoverflow.com/questions/42601478/flask-calling-python-function-on-button-onclick-event"&gt;Flask - Calling python function on button OnClick …&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 05 Aug 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-08-05:/python-how-to-use-ajax-in-flask-using-jquery-gb.html</guid><category>Python</category><category>python</category><category>flask</category><category>javascript</category></item><item><title>Python: Jak użyć AJAX w Flask za pomocą jQuery.</title><link>https://blog.furas.pl/python-jak-uzyc-ajax-w-flask-za-pomoca-jquery.html</link><description>&lt;p&gt;W kodzie są dwa problemy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;HTML nie był serwowany z flask/serwera. I przeglądarka mogła blokować to z powodu bezpieczeństwa. Wstawiłem HTML bezpośrednio do funkcji &lt;code&gt;index()&lt;/code&gt; ale później można by użyć &lt;code&gt;render_template("filename.html")&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;zapomniałes wczytać bibliotekę &lt;code&gt;jQuery&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Inne: &lt;a href="https://stackoverflow.com/questions/42601478/flask-calling-python-function-on-button-onclick-event"&gt;Flask - Calling python function on button OnClick event&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 05 Aug 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-08-05:/python-jak-uzyc-ajax-w-flask-za-pomoca-jquery.html</guid><category>Python</category><category>python</category><category>flask</category><category>javascript</category></item><item><title>Python: How to run Selenium on server without displaying window and GUI</title><link>https://blog.furas.pl/python-scraping-how-to-run-selenium-on-server-without-displaying-window-and-GUI-gb.html</link><description>&lt;p&gt;Server usually doesn't use GUI/Windows (only text mode) and even it may not have monitor.
It is called &lt;tt class="docutils literal"&gt;headless&lt;/tt&gt; server (because monitor looks like server's head).d&lt;/p&gt;
&lt;p&gt;Selenium runs web browser which needs GUI/Windows to display its window.
But some web browsers can also run without displaying window …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartomiej 'furas' Burek</dc:creator><pubDate>Sat, 20 Apr 2019 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-04-20:/python-scraping-how-to-run-selenium-on-server-without-displaying-window-and-GUI-gb.html</guid><category>Python/Scraping</category><category>python</category><category>scraping</category><category>selenium</category></item><item><title>Iodide - IDE od Mozilla dla Data Science podobne do Jupyter Notebook.</title><link>https://blog.furas.pl/mozilla-iodide-ide-od-mozilla-dla-data-science-podobne-do-juputer-notebook.html</link><description>&lt;p&gt;Mozilla stworzyła &lt;a class="reference external" href="https://iodide.io/"&gt;Iodide&lt;/a&gt; (po polsku: jodek) dla Data Science,
które częściowo przypomina mi &lt;a class="reference external" href="https://jupyter.org/"&gt;Jupter Notebook&lt;/a&gt; a częściowo narzędzia typu &lt;a class="reference external" href="https://jsfiddle.net/"&gt;JSFiddle&lt;/a&gt;
lub IDE &lt;a class="reference external" href="https://rodeo.yhat.com/"&gt;Rodeo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Podobnie jak &lt;cite&gt;Jupyter Notebook&lt;/cite&gt; narzędzia można uruchomić jako lokalny serwer WWW i w przeglądarce otworzyć stronę do wpisywania kodu i tekstu.&lt;/p&gt;
&lt;p&gt;Strona pododbnie do &lt;cite&gt;JSFiddler&lt;/cite&gt; jest podzielona …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 31 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-31:/mozilla-iodide-ide-od-mozilla-dla-data-science-podobne-do-juputer-notebook.html</guid><category>Python</category><category>python</category><category>juputer</category><category>ide</category></item><item><title>Pluma 1.20 - wtyczki Duplicate Line i Line Tools</title><link>https://blog.furas.pl/pluma-wtyczki-duplicate-line-i-line-tools.html</link><description>&lt;p&gt;Do GitHub dodałem dwie wtyczki dla edytora Pluma w wersji 1.20 lub nowszej.&lt;/p&gt;
&lt;p&gt;GitHub: &lt;a class="reference external" href="https://github.com/furas/pluma-python-plugins"&gt;https://github.com/furas/pluma-python-plugins&lt;/a&gt;&lt;/p&gt;
&lt;div class="section" id="duplicate-line"&gt;
&lt;h2&gt;Duplicate Line&lt;/h2&gt;
&lt;p&gt;Duplikuje linię (lub zaznaczony kawałek tekstu) za pomocą &lt;cite&gt;Ctrl+Shift+D&lt;/cite&gt;.
Niestety próba przypisania do &lt;cite&gt;Ctrl+D&lt;/cite&gt; tak jak to jest w Geany nie zadziała. &lt;cite&gt;Ctrl+D&lt;/cite&gt; wciąż …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 31 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-31:/pluma-wtyczki-duplicate-line-i-line-tools.html</guid><category>Python</category><category>python</category></item><item><title>PyGTK - minimalny program</title><link>https://blog.furas.pl/python-gtk-minimalny-program.html</link><description>&lt;div class="section" id="minimalny-program"&gt;
&lt;h2&gt;Minimalny program&lt;/h2&gt;
&lt;p&gt;Oto jak mógłby wyglądać minimalny program w Pythona z użyciem GTK.&lt;/p&gt;
&lt;p&gt;Niby działa i wyświetla okno ale mimo wszystko będzie wymagał kilku dodatków o czym poniżej.&lt;/p&gt;
&lt;img alt="python gtk minimalny przykład" class="uk-align-center" src="/images/python/gtk/pygtk-minimalny-program-1.png" /&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;gi.repository&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Gtk&lt;/span&gt;

&lt;span class="n"&gt;win&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Gtk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Window&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;win&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;show_all&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;Gtk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Opis kodu:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;importujemy bibliotekę GTK (w pewien specyficzny sposób).&lt;/li&gt;
&lt;li&gt;&lt;cite&gt;win …&lt;/cite&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 30 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-30:/python-gtk-minimalny-program.html</guid><category>Python/GTK</category><category>python</category><category>gtk</category></item><item><title>Rysowanie w Pythonie - Pillow</title><link>https://blog.furas.pl/rysowanie-w-pythonie-pillow.html</link><description>&lt;p&gt;Pod pojęciem &lt;cite&gt;rysowanie&lt;/cite&gt; można rozumieć różne działania - jednym z nich może być tworzenie bitmapy (jpg/png)
z naniesionymy elementami takimi jak kreski, figury (kwadrat, koło), teksty, inne bitmapy.
Do takiego celu można wykorzystać moduł &lt;cite&gt;pillow&lt;/cite&gt; (lub &lt;cite&gt;PIL&lt;/cite&gt;).&lt;/p&gt;
&lt;p&gt;Na początek utworzenie pustej bitmapy RGB o wymiarach 800x600 z czarnym (domyślnym) tłem …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 28 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-28:/rysowanie-w-pythonie-pillow.html</guid><category>Python</category><category>python</category></item><item><title>[2019.03.27] Python News: Promocja na Kurs Video + Ebook</title><link>https://blog.furas.pl/2019-03-27-python-news-promocja-na-kurs-video-plus-ebook.html</link><description>&lt;p&gt;W Helion.pl od 26.03.2019 do 28.03.2019 jest &lt;a class="reference external" href="https://helion.pl/page/6050k/promocja/6532"&gt;promocja na zestawy Kurs Video + Ebook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Wśród nich jest zestaw&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://helion.pl/view/6050k/blog/python-3-kurs-video-kompendium-efektywnego-pythonisty-bartosz-zaczynski,vpytpz.htm"&gt;Python 3. Kurs video. Kompendium efektywnego Pythonisty&lt;/a&gt; (6:31 godziny)&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://helion.pl/view/6050k/blog/python-zacznij-programowac-rob-miles,pytzap.htm#format/e"&gt;Python. Zacznij programować!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cena zestawu: 39.90 zł (zamiast 188.00 zł)&lt;/p&gt;
&lt;p&gt;Szczegóły na &lt;a class="reference external" href="https://helion.pl/page/6050k/promocja/6532"&gt;stronie promocji&lt;/a&gt;&lt;/p&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 27 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-27:/2019-03-27-python-news-promocja-na-kurs-video-plus-ebook.html</guid><category>Python/News</category><category>python</category></item><item><title>Potokowanie (czyli piping) w Pythonie</title><link>https://blog.furas.pl/piping-czyli-potokowanie-w-pythonie.html</link><description>&lt;div class="section" id="potokowanie"&gt;
&lt;h2&gt;Potokowanie&lt;/h2&gt;
&lt;p&gt;Potokowanie w Linux to przekazywanie wyników jednego programu do następnego zamiast wysyłać je na ekran.&lt;/p&gt;
&lt;p&gt;Przykładowo w poniższym &lt;cite&gt;ls&lt;/cite&gt; zamiast wyświetlać listę plików przekazuje ją do &lt;cite&gt;sort&lt;/cite&gt;, która sortuje listę w odwrotnej kolejności i przekazuje do &lt;cite&gt;head&lt;/cite&gt;,
która wyświetla pierwszy 5 wierszy.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
$ ls &lt;span class="p"&gt;|&lt;/span&gt; sort -r &lt;span class="p"&gt;|&lt;/span&gt; head -5
&lt;/pre&gt;
&lt;p&gt;Można to …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 27 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-27:/piping-czyli-potokowanie-w-pythonie.html</guid><category>Wersje Robocze</category><category>python</category></item><item><title>Drawing with Turtle - Wait On Click</title><link>https://blog.furas.pl/python-turtle-drawing-with-turtle-wait-on-click-gb.html</link><description>&lt;p&gt;Turtle posiada funkcję &lt;cite&gt;exitonclick()&lt;/cite&gt;, która po zakończeniu rysowania
czeka na kliknięcie myszką w dowolnym miejscu okna aby je zamknąć. i
nie trzeba wtedy klikać specjalnie w przycisk [X] aby zamkąć okno.&lt;/p&gt;
&lt;p&gt;Nie ma jednak funkcji, która by pozwalała czekała na kliknięcie myszką w dowolnym miejscu
aby kontynuować rysowanie - taka pauza …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 07 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-07:/python-turtle-drawing-with-turtle-wait-on-click-gb.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Wait On Click</title><link>https://blog.furas.pl/rysowanie-w-turtle-wait-on-click.html</link><description>&lt;p&gt;Turtle posiada funkcję &lt;tt class="docutils literal"&gt;exitonclick()&lt;/tt&gt;, która po zakończeniu rysowania czeka na kliknięcie myszką w dowolnym miejscu okna
aby je zamknąć i wtedy nie trzeba klikać specjalnie w przycisk &lt;tt class="docutils literal"&gt;[X]&lt;/tt&gt; aby je zamknąć.&lt;/p&gt;
&lt;p&gt;Nie ma jednak funkcji, która by zatrzymywała wykonywanie kodu i czekała na kliknięcie myszką w dowolnym miejscu okna
w …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 07 Mar 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-03-07:/rysowanie-w-turtle-wait-on-click.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Okno wprowadzania danych - textinput i numinput</title><link>https://blog.furas.pl/rysowanie-w-turtle-okno-wprowadzania-danych-textinnput-i-numinput.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;p&gt;Turtle udostępnia dwa okienka do wprowadzania danych - &lt;cite&gt;textinput()&lt;/cite&gt; i &lt;cite&gt;numinput()&lt;/cite&gt;&lt;/p&gt;
&lt;div class="section" id="textinput"&gt;
&lt;h2&gt;textinput&lt;/h2&gt;
&lt;p&gt;(dokumentacja: &lt;a class="reference external" href="https://docs.python.org/3/library/turtle.html?highlight=turtle#turtle.textinput)"&gt;textinput&lt;/a&gt; )&lt;/p&gt;
&lt;img alt="python - rysowanie w turtle - textinput" class="uk-align-center" src="/images/python/rysowanie-w-turtle-input-dialog/turtle-textinput-1.png" /&gt;
&lt;p&gt;Składnia:&lt;/p&gt;
&lt;p&gt;textinput(title, prompt)&lt;/p&gt;
&lt;blockquote&gt;
title – string
prompt – string&lt;/blockquote&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="n"&gt;napis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;textinput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Opis figury'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Napis'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Napis:'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;napis&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Okno pozwala na wpisanie dowolnego tekstu i zatwierdzenie klawiszem &lt;cite&gt;Enter&lt;/cite&gt; lub przyciskiem &lt;cite&gt;Ok …&lt;/cite&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 24 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-24:/rysowanie-w-turtle-okno-wprowadzania-danych-textinnput-i-numinput.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Płótno (Canvas) i funkcje Tkinter</title><link>https://blog.furas.pl/rysowanie-w-turtle-plotno-canvas-i-funkcje-tkinter.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;p&gt;Moduł &lt;cite&gt;turtle&lt;/cite&gt; jest zbudowane w oparciu o moduł &lt;cite&gt;tkinter&lt;/cite&gt; i wykorzystuje jego obiekt &lt;cite&gt;Canvas&lt;/cite&gt; (&lt;cite&gt;Płótno&lt;/cite&gt;) do wyświetlania rysowanych elementów.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;turtle&lt;/cite&gt; pozwala nawet na bezpośredni dostęp do płótna - dzięki &lt;cite&gt;turtle.getcanvas()&lt;/cite&gt; - co pozwala na wykorzystanie funkcji udostępnianych przez płótno w &lt;cite&gt;tkinter&lt;/cite&gt;.&lt;/p&gt;
&lt;div class="section" id="create-rectangle-kwadrat-i-prostokat"&gt;
&lt;h2&gt;create_rectangle - kwadrat i prostokąt&lt;/h2&gt;
&lt;p&gt;Składnia:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_rectangle …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 24 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-24:/rysowanie-w-turtle-plotno-canvas-i-funkcje-tkinter.html</guid><category>Python</category><category>python</category><category>turtle</category><category>tkinter</category></item><item><title>Rysowanie w Turtle - Kwadrat i Prostokąt</title><link>https://blog.furas.pl/rysowanie-w-turtle-kwadrat-i-prostokat.html</link><description>&lt;div class="section" id="kwadrat"&gt;
&lt;h2&gt;Kwadrat&lt;/h2&gt;
&lt;p&gt;(ang: square)&lt;/p&gt;
&lt;p&gt;Aby narysować kwadrat należy cztery razy powtórzyć: narysuj bok, skręć w prawo (lub lewo) o 90 stopni.&lt;/p&gt;
&lt;p&gt;Podczas rysowania żółw w sumie wykonuje obrót o 360 stopni a ponieważ robi 4 skręty więc każdy z nich ma 360/4 = 90 stopni.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;turtle …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 23 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-23:/rysowanie-w-turtle-kwadrat-i-prostokat.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Drawing with Turtle - Triangle</title><link>https://blog.furas.pl/drawing-with-turtle-triangle.html</link><description>&lt;div class="section" id="equilateral-triangle"&gt;
&lt;h2&gt;Equilateral Triangle&lt;/h2&gt;
&lt;p&gt;To draw equilateral triangle you have to repeat three times: draw side, turn left (or right) 120 degrees.&lt;/p&gt;
&lt;p&gt;During drawing turtle rotate totally 360 degrees and because it makes three turns so every turn has 360/3 = 120 degrees.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;turtle …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 22 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-22:/drawing-with-turtle-triangle.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Trójkąt</title><link>https://blog.furas.pl/rysowanie-w-turtle-trojkat.html</link><description>&lt;div class="section" id="trojkat-rownoboczny"&gt;
&lt;h2&gt;Trójkąt równoboczny&lt;/h2&gt;
&lt;p&gt;(ang: equilateral triangle)&lt;/p&gt;
&lt;p&gt;Aby narysować trójkąt równoboczny należy powtórzyć trzy razy: narysuj bok, skręć w prawo (lub lewo) o 120 stopni.&lt;/p&gt;
&lt;p&gt;Podczas rysowania żółw w sumie wykonuje obrót o 360 stopni a ponieważ robi 3 skręty więc każdy z nich ma 360/3 = 120 stopni.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="n"&gt;turtle …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 22 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-22:/rysowanie-w-turtle-trojkat.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Galeria rysunków</title><link>https://blog.furas.pl/rysowanie-w-turtle-galeria-rysunkow.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;p&gt;Oto rysunki z wielu wpisów zebrane w jednym miejscu.&lt;/p&gt;
&lt;div class="section" id="rysowanie-w-turtle-przyklady-dostarczane-z-pythonem"&gt;
&lt;h2&gt;&lt;a class="reference external" href="/rysowania-w-turtle-przyklady-dostarczane-z-pythonem.html"&gt;Rysowanie w Turtle - przykłady dostarczane z Pythonem&lt;/a&gt;&lt;/h2&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/turtledemo-1-menu.png" style="width: 100%;" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/turtledemo-2-rosette.png" style="width: 100%;" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/turtledemo-3-forest.png" style="width: 100%;" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/turtledemo-4-forest-bez-kodu.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/turtle-przyklad-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/turtle-przyklad-2.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="rysowanie-w-turtle-trojkat"&gt;
&lt;h2&gt;&lt;a class="reference external" href="/rysowania-w-turtle-trojkat.html"&gt;Rysowanie w Turtle - Trójkąt&lt;/a&gt;&lt;/h2&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-3-razy-biohazard.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-4-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-4-w-linii-prostej.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-gwiazda-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-gwiazda-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkaty-3-wielkosci.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-zwijanie-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-zwijanie-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-prostokatny-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-roznorodne-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-roznorodne-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-roznorodne-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-flaga-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-flaga-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-neony.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-rozwijanie-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-trojkat/trojkat-rozwijanie-2.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="rysowanie-w-turtle-kwadrat-i-prostokat"&gt;
&lt;h2&gt;&lt;a class="reference external" href="/rysowania-w-turtle-kwadrat-i-prostokat.html"&gt;Rysowanie w Turtle - Kwadrat i Prostokąt&lt;/a&gt;&lt;/h2&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-3-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-3-wielkosci.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-4-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-4-w-linii.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-6-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-8-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-12-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-36-razy.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-flaga-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-flaga-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-linie-kwadrat.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-linie-trojkat.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-piramida.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-rozwijanie-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-rozwijanie-5.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-siatka.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-zwijanie-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/kwadrat-zwijanie-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/prostokat.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/prostokat-mozaika-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/prostokat-mozaika-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/prostokat-obracanie-5.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat/prostokat-obracanie-36.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="rysowanie-w-turtle-okrag-luk-kolo-i-elipsa"&gt;
&lt;h2&gt;&lt;a class="reference external" href="/rysowanie-w-turtle-okrag-luk-kolo-i-elipsa.html"&gt;Rysowanie w Turtle - Okrąg, Łuk, Koło i Elipsa&lt;/a&gt;&lt;/h2&gt;
&lt;img alt="python - rysowanie w turtle - okrąg" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle.png" /&gt;
&lt;img alt="python - rysowanie w turtle - steps=3" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/turtle-circle-minus-radius-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - steps=3" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-steps-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle - steps=4" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-steps-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle - steps=6" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-steps-6.png" /&gt;
&lt;img alt="python - rysowanie w turtle - łuk 90 stopni" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-90.png" /&gt;
&lt;img alt="python - rysowanie w turtle - łuk 180 stopni" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-180.png" /&gt;
&lt;img alt="python - rysowanie w turtle - łuk 270 stopni" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-270.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-listek-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-kwiatek-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-kwiatek-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-plomyk.png" /&gt;
&lt;img alt="python - rysowanie w turtle - łuk 90 stopni" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-minus-90-stopni.png" /&gt;
&lt;img alt="python - rysowanie w turtle - łuk 180 stopni" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-minus-180-stopni.png" /&gt;
&lt;img alt="python - rysowanie w turtle - łuk 270 stopni" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-minus-270-stopni.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-minus-promien-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-minus-extent-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-minus-radius-minus-extent-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-minus-radius-minus-extent-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-minus-radius-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-sinus.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-babel.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-duch.png" /&gt;
&lt;img alt="python - rysowanie w turtle - circle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-przerywane.png" /&gt;
&lt;img alt="python - rysowanie w turtle - circle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-przerywane-luk.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-kolo-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-kolo-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-kolo-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-kolo-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-roza-pustyni-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-roza-pustyni-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-piernik-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-piernik-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-piernik-X3.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-piernik-X4.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-X1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-luk-X2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-multi-jin-jang-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-jin-jang-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-jin-jang-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-pasta.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-6.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-7.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-8.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-9.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-wasy-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-wasy-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-wasy-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-wasy-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-eska-wasy-5.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-lezka-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-lezka-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-lezka-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-lezka-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-lezka-5.png" /&gt;
&lt;img alt="python - rysowanie w turtle - koło" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-okrag/circle-lezka-6.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="rysowanie-w-turtle-wielobok-foremny"&gt;
&lt;h2&gt;&lt;a class="reference external" href="/rysowania-w-turtle-wielobok.html"&gt;Rysowanie w Turtle - Wielobok foremny&lt;/a&gt;&lt;/h2&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-wielobok/wieloboki.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="inne"&gt;
&lt;h2&gt;Inne&lt;/h2&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-0-0-x-bez-home.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-0-0-x-z-home.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-0-1-x.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-1-0-x.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-1-1-x.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-3-x-0.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-3-x-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-0-x-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-0-x-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-0-x-3.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-0-x-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-0-x-6.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-1-x.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-4-2-x.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-15.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-30.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-45.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-60.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-90.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-110.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-120.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-130.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-144.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-5-x-kat-150.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-6-x-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-6-x-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-0.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-2.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-4.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-5.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-6.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/examples/example-7-8.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat-rekurencja-2/polkwadrat-1.png" /&gt;
&lt;img alt="python - rysowanie w turtle" class="uk-align-center" src="/images/python/turtle/rysowanie-w-turtle-kwadrat-rekurencja-2/polkwadrat-2.png" /&gt;
&lt;/div&gt;
&lt;div class="section" id="rysowanie-z-turtle-plotno-czyli-canvas-i-inne-obiekty-z-tkinter"&gt;
&lt;h2&gt;&lt;a class="reference external" href="/rysowanie-w-turtle-plotno-canvas-i-funkcje-tkinter.html"&gt;Rysowanie z Turtle - Płótno czyli Canvas i …&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 21 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-21:/rysowanie-w-turtle-galeria-rysunkow.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Rysowanie online w przeglądarce</title><link>https://blog.furas.pl/rysowanie-w-turtle-rysowanie-online-w-przegladarce.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="trinket-io"&gt;
&lt;h2&gt;trinket.io&lt;/h2&gt;
&lt;p&gt;Strona pozwala na uruchamianie kodu w Pythonie&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://trinket.io/python"&gt;trinket.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Przykład: &lt;a class="reference external" href="https://trinket.io/python/7975ecf32f"&gt;https://trinket.io/python/7975ecf32f&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="repl-it"&gt;
&lt;h2&gt;repl.it&lt;/h2&gt;
&lt;p&gt;Strona pozwala na uruchamianie kodu w Pythonie&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://repl.it/languages/python_turtle"&gt;repl.it/languages/python_turtle&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Przykład: &lt;a class="reference external" href="https://repl.it/repls/SugaryQueasyPublisher"&gt;https://repl.it/repls/SugaryQueasyPublisher&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="transcrypt-org"&gt;
&lt;h2&gt;transcrypt.org&lt;/h2&gt;
&lt;p&gt;Jest to konwerser kodu Pythona do JavaScript, który można …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 21 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-21:/rysowanie-w-turtle-rysowanie-online-w-przegladarce.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Schodki</title><link>https://blog.furas.pl/rysowanie-w-turtle-schodki.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tracer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;#False)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;up&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;down&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;example1&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;for …&lt;/span&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 21 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-21:/rysowanie-w-turtle-schodki.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - inne</title><link>https://blog.furas.pl/rysowanie-w-turtle-inne.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="figury-rekurencyjne"&gt;
&lt;h2&gt;Figury rekurencyjne&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TODO:&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="predkosc-rysowania"&gt;
&lt;h2&gt;Prędkość rysowania&lt;/h2&gt;
&lt;p&gt;Całkowite wyłączenie odświeżania obrazu - o czym nie napisali w dokumentacji.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tracer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Zwykle wymaga to użycia także &lt;cite&gt;turtle.update()&lt;/cite&gt; aby wymusić odświeżenie obrazu.&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="c1"&gt;#turtle.speed(0)&lt;/span&gt;
&lt;span class="c1"&gt;#turtle.delay(0)&lt;/span&gt;
&lt;span class="c1"&gt;#turtle.tracer(100,0)&lt;/span&gt;
&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tracer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;wielobok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-inne.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Okrąg, Łuk, Koło i Elipsa</title><link>https://blog.furas.pl/rysowanie-w-turtle-okrag-luk-kolo-i-elipsa.html</link><description>&lt;div class="section" id="okrag"&gt;
&lt;h2&gt;Okrąg&lt;/h2&gt;
&lt;p&gt;Do rysowania okręgu służy funkcja &lt;cite&gt;circle()&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;Dokumentacja: &lt;a class="reference external" href="https://docs.python.org/3/library/turtle.html#turtle.circle"&gt;turtle - circle()&lt;/a&gt;&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;extent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;steps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;table border="1" class="docutils"&gt;
&lt;colgroup&gt;
&lt;col width="7%" /&gt;
&lt;col width="93%" /&gt;
&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;radius&lt;/td&gt;
&lt;td&gt;&lt;ul class="first last simple"&gt;
&lt;li&gt;promień okręgu czyli odległość  okręgu od jego środka.&lt;/li&gt;
&lt;li&gt;jeśli promień jest dodatni to środek okręgu będzie na lewo od pozycji żółwia (w odległości &lt;cite&gt;radius&lt;/cite&gt;)
a żółw będzie poruszał się w lewo (przeciwnie …&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-okrag-luk-kolo-i-elipsa.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Przykłady dostarczane z Pythonem</title><link>https://blog.furas.pl/rysowanie-w-turtle-przyklady-dostarczane-z-pythonem.html</link><description>&lt;p&gt;Moduł &lt;cite&gt;turtle&lt;/cite&gt; zawiera kilka przykładów pokazującyh jego użycie. Część z przykładów nawet pokazuje kod źródłowy wykonywanych rysunków.&lt;/p&gt;
&lt;div class="section" id="podstawowy-przyklad"&gt;
&lt;h2&gt;Podstawowy przykład&lt;/h2&gt;
&lt;p&gt;Podstawowy przykład można wywołać przez&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
$ python -m turtle
&lt;/pre&gt;
&lt;p&gt;A oto co możemy zobaczyć&lt;/p&gt;
&lt;p&gt;Rysunek 1&lt;/p&gt;
&lt;img alt="python turtle przykład 1" class="uk-align-center" src="/images/python/turtle/turtle-przyklad-1.png" /&gt;
&lt;p&gt;Rysunek 2&lt;/p&gt;
&lt;img alt="python turtle przykład 2" class="uk-align-center" src="/images/python/turtle/turtle-przyklad-2.png" /&gt;
&lt;p&gt;Nie jest jednak podany kod źródłowy, który wykonuje te rysunki.&lt;/p&gt;
&lt;p&gt;Użycie &lt;cite&gt;__file__&lt;/cite&gt; pozwala poznać …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-przyklady-dostarczane-z-pythonem.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Romb, Trapez i Gwiazda</title><link>https://blog.furas.pl/rysowanie-w-turtle-romb-trapez-i-gwiazda.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="romb"&gt;
&lt;h2&gt;Romb&lt;/h2&gt;
&lt;p&gt;(ang: rhombus)&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="trapez"&gt;
&lt;h2&gt;Trapez&lt;/h2&gt;
&lt;p&gt;(ang: trapezoid)&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;
&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-romb-trapez-i-gwiazda.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - trójkąt, kwadrat, okrąg i inne figury</title><link>https://blog.furas.pl/rysowanie-w-turtle-trojkat-kwadrat-okrag-i-inne-figury.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="figury-rekurencyjne"&gt;
&lt;h2&gt;Figury rekurencyjne&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TODO&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="predkosc-rysowania"&gt;
&lt;h2&gt;Prędkość rysowania&lt;/h2&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="c1"&gt;#turtle.speed(0)&lt;/span&gt;
&lt;span class="c1"&gt;#turtle.delay(0)&lt;/span&gt;
&lt;span class="c1"&gt;#turtle.tracer(100,0)&lt;/span&gt;
&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tracer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;wielobok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
   &lt;span class="n"&gt;kat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;360&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
   &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
       &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kat&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;wielobok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-trojkat-kwadrat-okrag-i-inne-figury.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Wstęp</title><link>https://blog.furas.pl/rysowanie-w-turtle-trojkat-wstep.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="wstep"&gt;
&lt;h2&gt;Wstęp&lt;/h2&gt;
&lt;p&gt;W przykładach nie stosuje &lt;cite&gt;from &amp;lt;modul&amp;gt; import *&lt;/cite&gt; aby było widać, z jakich modułów pochodzą jakie funkcje.
Z powodu nieczytelności &lt;cite&gt;import *&lt;/cite&gt; jest  niezalecane także przez dokument &lt;cite&gt;PEP 8 -- Style Guide for Python Code &amp;lt;https://www.python.org/dev/peps/pep-0008/) (wyszukaj `import *&lt;/cite&gt;&amp;gt;`__.&lt;/p&gt;
&lt;p&gt;W &lt;cite&gt;turle&lt;/cite&gt; niektóre funkcje …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-trojkat-wstep.html</guid><category>Python</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Wielobok</title><link>https://blog.furas.pl/rysowanie-w-turtle-wielobok.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="wielobok-foremny"&gt;
&lt;h2&gt;Wielobok foremny&lt;/h2&gt;
&lt;p&gt;(ang: regular polygon)&lt;/p&gt;
&lt;p&gt;Chcemy narysować figurę o &lt;cite&gt;N&lt;/cite&gt; bokach. Tak jak poprzednio podczas rysowania żółw musi wykonać obrót o 360 stopni a ponieważ ma zrobić &lt;cite&gt;N&lt;/cite&gt; skrętów więc każdy z nich musi mieć 360/N stopni.&lt;/p&gt;
&lt;p&gt;Pięciobok foremny będzie wymagał pięciu obrotów o 360/5 …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-wielobok.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Rysowanie w Turtle - Wstęp</title><link>https://blog.furas.pl/rysowanie-w-turtle-wstep.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA WPISU&lt;/div&gt;&lt;div class="section" id="uwagi"&gt;
&lt;h2&gt;Uwagi&lt;/h2&gt;
&lt;p&gt;W przykładach nie stosuje &lt;cite&gt;from &amp;lt;modul&amp;gt; import *&lt;/cite&gt; aby było widać, z jakich modułów pochodzą jakie funkcje.
Z powodu nieczytelności &lt;cite&gt;import *&lt;/cite&gt; jest  niezalecane także przez dokument &lt;a class="reference external" href="https://www.python.org/dev/peps/pep-0008/"&gt;PEP 8 -- Style Guide for Python Code&lt;/a&gt; (wyszukaj &lt;cite&gt;import *&lt;/cite&gt;).&lt;/p&gt;
&lt;p&gt;W &lt;cite&gt;turle&lt;/cite&gt; niektóre funkcje mają także skrócone nazwy - przykładowo &lt;cite&gt;fd()&lt;/cite&gt; jako skrót …&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-20:/rysowanie-w-turtle-wstep.html</guid><category>Python/Turtle</category><category>python</category><category>turtle</category></item><item><title>Operator trójargumentowy w Pythonie</title><link>https://blog.furas.pl/operator-trojargumentowy-w-pythonie.html</link><description>&lt;p&gt;Operator trójargumentowy (ang: &lt;a href="https://en.wikipedia.org/wiki/%3F:"&gt;ternary operator&lt;/a&gt;) zwany też &lt;a href="https://pl.wikipedia.org/wiki/Operator_warunkowy"&gt;operatorem warunkowym&lt;/a&gt; pozwala zwrócić jedną z dwóch wartości na podstawie wyniku badanego warunku.&lt;/p&gt;
&lt;p&gt;Jeśli warunek daje wynik "prawda" to zwracana jest pierwsza wartość. Jeśli warunek daje wynik "fałsz" to zwracana jest druga wartość.&lt;/p&gt;
&lt;p&gt;W wielu językach operator trójargumentowy znany jest jako &lt;code&gt;?:&lt;/code&gt; (nawet w …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 19 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-19:/operator-trojargumentowy-w-pythonie.html</guid><category>Python</category><category>python</category></item><item><title>Problem z brakiem Tkinter/Turtle/IDLE po instalacji Pythona z użyciem Pyenv</title><link>https://blog.furas.pl/problem-z-tkinter-turtle-idle-po-instalacji-pythonie-z-uzyciem-pyenv.html</link><description>&lt;p&gt;&lt;a href="https://github.com/pyenv/pyenv"&gt;pyenv&lt;/a&gt; pozwala na instalację różnych wersji Pythona.
Ściąga on kod źródłowy i kompiluje go.
Do kompilacji niektórych modułów może jednak wymagać doinstalowania dodatkowych bibliotek - zwłaszcza takich zawierających &lt;code&gt;-dev&lt;/code&gt; w nazwie.&lt;/p&gt;
&lt;p&gt;Takich dodatkowych bibliotek wymaga moduł &lt;code&gt;tkitner&lt;/code&gt; (a także &lt;code&gt;sqlite3&lt;/code&gt; i kilka innych ale to tutaj pominę).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pydev&lt;/code&gt; podczas instalacji nie …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 18 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-18:/problem-z-tkinter-turtle-idle-po-instalacji-pythonie-z-uzyciem-pyenv.html</guid><category>Python</category><category>python</category></item><item><title>Wyciek Collection #1 - przegląd domen z użyciem Pythona</title><link>https://blog.furas.pl/wyciek-collection-1-przeglad-domen-z-uzyciem-pythona.html</link><description>&lt;h3&gt;Wstęp&lt;/h3&gt;
&lt;p&gt;Około 16 stycznia 2019 (czyli z miesiąc przed tym wpisem) pojawiły się informacje o wielkim wycieku haseł zwanym &lt;code&gt;Collection #1&lt;/code&gt;.
Nazwano go tak od nazwy katalog na portalu MEGA, który zawierał około 3000 plików z hasłami do różnych portali.&lt;/p&gt;
&lt;p&gt;Całość chyba dość szybko znikła z MEGA - choć na pewnych …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 18 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-18:/wyciek-collection-1-przeglad-domen-z-uzyciem-pythona.html</guid><category>Python</category><category>python</category><category>security</category></item><item><title>Jak sprawdzić rodzaj pamięci RAM pod Linux z użyciem Pythona.</title><link>https://blog.furas.pl/jak-sprawdzic-rodzaj-pamieci-ram-pod-linux-z-uzyciem-pythona.html</link><description>&lt;p&gt;To jest kontynuacja wpisu: &lt;a href="https://blog.furas.pl/sprawdzanie-pod-linux-rodzaju-pamieci-ram.html"&gt;Sprawdzanie pod Linux rodzaju pamięci RAM&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Konsolowe programy podające rodzaj kości RAM w Linux można wykorzystać w Pythonie z użycie &lt;code&gt;os.system()&lt;/code&gt; albo &lt;code&gt;subprocess&lt;/code&gt; ale akurat programy &lt;code&gt;dmidecode&lt;/code&gt; i &lt;code&gt;osquery&lt;/code&gt; mają już gotowe moduły w Pythonie.&lt;/p&gt;
&lt;p&gt;UWAGA: Ponieważ normalnie informacje o kościach wymagają uprawnień administratora więc …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 17 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-17:/jak-sprawdzic-rodzaj-pamieci-ram-pod-linux-z-uzyciem-pythona.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Jak używać osquery w Pythonie.</title><link>https://blog.furas.pl/jak-uzywac-osquery-w-pythonie.html</link><description>&lt;p&gt;&lt;a href="https://osquery.io/"&gt;osquery&lt;/a&gt; to program stworzony przez Facebook, który za pomocą zapytań SQL pozwala pobierać informacje o systemie, sprzęcie, uruchomionych programach itp.&lt;/p&gt;
&lt;p&gt;Program można pobrać z &lt;a href="https://osquery.io/downloads/"&gt;https://osquery.io/downloads/&lt;/a&gt; w postaci paczki instalacyjnej pod Linux, MacOS lub Windows. Można też dodać repozytorium i instalować za pomocą np. &lt;code&gt;apt&lt;/code&gt; pod &lt;code&gt;Debian/Ubuntu …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 17 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-17:/jak-uzywac-osquery-w-pythonie.html</guid><category>Python</category><category>python</category></item><item><title>Sprawdzanie pod Linux rodzaju pamięci RAM.</title><link>https://blog.furas.pl/sprawdzanie-pod-linux-rodzaju-pamieci-ram.html</link><description>&lt;p&gt;&lt;strong&gt;[ Aktualizacja: 2019.02.15 ]&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Oto kilka programów pozwalajacych sprawdzić pod Linux jakiego rodzaju kości pamięci RAM są zamontowane w komputerze.&lt;/p&gt;
&lt;p&gt;Informacje te wymagają uprawnień administratora więc wszystkie przykłady wymagają &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Programy te potrafią też podać informacje o innych podzespołach komputera ale to pomijam.&lt;/p&gt;
&lt;h3&gt;dmidecode&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ sudo dmidecode -t memory

$ sudo dmidecode …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 15 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-15:/sprawdzanie-pod-linux-rodzaju-pamieci-ram.html</guid><category>Linux</category><category>linux</category></item><item><title>Nowy operator := walrus (mors) w Python 3.8</title><link>https://blog.furas.pl/nowy-operator-walrus-w-python-3-8.html</link><description>&lt;p&gt;Wyszła pierwsza wersja "Python 3.8 alpha" a w nim pojawił się operator &lt;code&gt;:=&lt;/code&gt; zwany po angielsku &lt;code&gt;walrus&lt;/code&gt; co po polsku znaczy &lt;code&gt;mors&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Operator ten pozwala na przypisanie wartości do zmiennej w &lt;code&gt;if&lt;/code&gt; , &lt;code&gt;elif&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, &lt;code&gt;lambda&lt;/code&gt;, list comprehensions itp.&lt;/p&gt;
&lt;p&gt;Tak więc będzie możliwe&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;fp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readline&lt;/span&gt;&lt;span class="p"&gt;()):&lt;/span&gt;
    &lt;span class="c1"&gt;# dalszy kod&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;zamiast&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;while …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 13 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-13:/nowy-operator-walrus-w-python-3-8.html</guid><category>Python</category><category>python</category></item><item><title>Jak sprawdzić zewnętrzny adres IP z pomocą Pythona.</title><link>https://blog.furas.pl/jak-sprawdzic-zewnetrzny-adres-ip-z-pomoca-pythona.html</link><description>&lt;p&gt;Aby sprawdzić swój zewnętrzny adres IP można wykorzystać strony WWW, które taką informację udostępniają w postaci zwykłe tekstu lub JSON zamiast strony pełnej HTML, na której trzeba szukać IP za pomocą np. &lt;code&gt;BeautifulSoup&lt;/code&gt; lub &lt;code&gt;lxml&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Przykładowe strony, które takie dane przesyłają to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://httpbin.org/"&gt;httpbin.org&lt;/a&gt; (JSON: &lt;a href="https://httpbin.org/ip"&gt;https://httpbin.org/ip&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://myip.com"&gt;myip …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 11 Feb 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-02-11:/jak-sprawdzic-zewnetrzny-adres-ip-z-pomoca-pythona.html</guid><category>Python</category><category>python</category><category>ip</category></item><item><title>Canon TS3150 on Linux Mint and Ubuntu [GB]</title><link>https://blog.furas.pl/canon-TS3150-on-linux-mint-and-ubuntu-gb-gb.html</link><description>&lt;p&gt;I found driver for printer and scaner Cannon TS3150 on &lt;a href="http://ubuntuhandbook.org/index.php/2018/10/canon-ij-printer-scangear-mp-drivers-ubuntu-18-04-18-10/"&gt;ubuntuhandbook.org: Canon IJ Printer, ScanGear MP Drivers for Ubuntu 18.04, 18.10&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To install it &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo add-apt-repository ppa:thierry-f/fork-michael-gruz

sudo apt update

sudo apt install cnijfilter2 scangearmp2 cndrvcups-utility
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This ScanGear (ver 3.70) works for me for …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 19 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-01-19:/canon-TS3150-on-linux-mint-and-ubuntu-gb-gb.html</guid><category>Linux</category><category>linux</category></item><item><title>Canon TS3150 pod Linux Mint i Ubuntu</title><link>https://blog.furas.pl/canon-TS3150-pod-linux-mint-i-ubuntu-pl.html</link><description>&lt;p&gt;Driver dla drukarki i skanera Cannon TS3150 znalazłem na &lt;a href="http://ubuntuhandbook.org/index.php/2018/10/canon-ij-printer-scangear-mp-drivers-ubuntu-18-04-18-10/"&gt;ubuntuhandbook.org: Canon IJ Printer, ScanGear MP Drivers for Ubuntu 18.04, 18.10&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instalacja&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo add-apt-repository ppa:thierry-f/fork-michael-gruz

sudo apt update

sudo apt install cnijfilter2 scangearmp2 cndrvcups-utility
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Then ScanGear (ver 3.70) działa mi dla Canon PIXMA TS3150 i …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 19 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-01-19:/canon-TS3150-pod-linux-mint-i-ubuntu-pl.html</guid><category>Linux</category><category>linux</category></item><item><title>Zaczytani 2019 - zniżka nawet do 90% na ebooki w Helion</title><link>https://blog.furas.pl/zaczytani-2019-znizka-nawet-do-90-procent-na-ebooki-w-helion.html</link><description>&lt;p&gt;Noworoczna promocja &lt;strong&gt;Zaczytani 2019&lt;/strong&gt; na ebooki w Helion.&lt;/p&gt;
&lt;p&gt;Dotyczy to też wszelkich tytułów związanych z Pythonem i Machine Learning.&lt;/p&gt;
&lt;p&gt;Niektóre tytuły mogą być tańsze nawet o 90%.&lt;/p&gt;
&lt;p&gt;Promocji trwa 48 godziny od &lt;strong&gt;02.01.2019r.&lt;/strong&gt; (środa) do końca &lt;strong&gt;03.01.2019r.&lt;/strong&gt; (czwartek)&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="https://helion.pl/page/6050k/promocja/6094"&gt;Zaczytani 2019&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 02 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-01-02:/zaczytani-2019-znizka-nawet-do-90-procent-na-ebooki-w-helion.html</guid><category>Python</category><category>python</category><category>promocja</category><category>zniżka</category></item><item><title>Google ga.js, gtag.js i gtm.js</title><link>https://blog.furas.pl/google-ga-js-gtag-js-gtm-gtm.html</link><description>&lt;p&gt;Są trzy skrypty &lt;cite&gt;ga.js&lt;/cite&gt;, &lt;cite&gt;gtag.js&lt;/cite&gt; i &lt;cite&gt;gtm.js&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;ga.js&lt;/cite&gt; - tradycyjny skrypt dla Google Analytics zwany też 'Universal Analytics'&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;gtag.js&lt;/cite&gt; - nowsza wersja skryptu dla Google Analytics, który można użyć zamiast &lt;cite&gt;ga.js&lt;/cite&gt; - w kodzie pojawia się nazwa 'Global Site Tag'.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;gtm.js&lt;/cite&gt; - skrypt dla Google Tag Manager …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 01 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-01-01:/google-ga-js-gtag-js-gtm-gtm.html</guid><category>Wersje Robocze</category><category>Inne</category></item><item><title>Python: How to send HTTPS request using PySocks</title><link>https://blog.furas.pl/python-socket-how-to-send-https-request-using-pysocks-gb.html</link><description>&lt;p&gt;To connect with secure &lt;code&gt;HTTPS&lt;/code&gt; you need module &lt;code&gt;ssl&lt;/code&gt; to create wrapper on original &lt;code&gt;socket&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;socks&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;ssl&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;socks&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;socksocket&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#s.set_proxy(socks.SOCKS5, &amp;quot;localhost&amp;quot;, 9050)  # TOR proxy server&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;httpbin.org&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;443&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;ss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ssl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wrap_socket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;keyfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;certfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;server_side&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cert_reqs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ssl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CERT_NONE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ssl_version …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 01 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-01-01:/python-socket-how-to-send-https-request-using-pysocks-gb.html</guid><category>Python/Socket</category><category>python</category><category>socket</category><category>requests</category><category>https</category></item><item><title>Python: Jak wysłać request HTTPS z użyciem PySocks</title><link>https://blog.furas.pl/python-socket-jak-wyslac-requesthow-https-z-uzyciem-pysocks.html</link><description>&lt;p&gt;Aby połączyć się za pomocą szyfrowane &lt;code&gt;HTTPS&lt;/code&gt; potrzebny jest standardowy moduł &lt;code&gt;ssl&lt;/code&gt; do stworzenia wrapper na oryginalnym &lt;code&gt;socket&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;socks&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;ssl&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;socks&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;socksocket&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#s.set_proxy(socks.SOCKS5, &amp;quot;localhost&amp;quot;, 9050)  # TOR proxy server&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;httpbin.org&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;443&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;ss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ssl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wrap_socket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;keyfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;certfile&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;server_side&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cert_reqs …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 01 Jan 2019 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2019-01-01:/python-socket-jak-wyslac-requesthow-https-z-uzyciem-pysocks.html</guid><category>Python/Socket</category><category>python</category><category>socket</category><category>requests</category><category>https</category></item><item><title>Gwiazdkowa promocja 2-za-1 w Helion (2018)</title><link>https://blog.furas.pl/helion-promocja-gwiazdkowa-2za1-2018.html</link><description>&lt;p&gt;Świąteczna promocja &lt;strong&gt;2-za-1&lt;/strong&gt; na książki w Helion. Dotyczy to też wszelkich tytułów związanych z Pythonem i Machine Learning.&lt;/p&gt;
&lt;p&gt;Jeśli wybrać dwa tytuły o podobnej cenie to wyjdzie zniżka po &lt;strong&gt;50%&lt;/strong&gt; na każdy tytuł. Jest to więc jedna z najbardziej opłacalnych zniżek w Helion.&lt;/p&gt;
&lt;p&gt;Promocji trwa od &lt;strong&gt;17.12.2018r.&lt;/strong&gt; (poniedziałek …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Dec 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-12-17:/helion-promocja-gwiazdkowa-2za1-2018.html</guid><category>Python</category><category>python</category><category>promocja</category></item><item><title>W Helion promocja 50% pod choinkę 2018.</title><link>https://blog.furas.pl/helion-promocja-50-procent-pod-choinke-2018.html</link><description>&lt;p&gt;W Helion zniżka 50% na wybrane książki.&lt;/p&gt;
&lt;p&gt;13 grudnia 2018 jest to &lt;/p&gt;
&lt;p&gt;"Python. Wprowadzenie. Wydanie IV".&lt;/p&gt;
&lt;p&gt;Czyli najgrubsza książka na temat Pythona - prawie 1200 stron. Wprawdzie ma ona już trochę lat i opisuje Python 3.0 oraz 2.6 ale wciąż wiele może być aktualne.&lt;/p&gt;
&lt;p&gt;Pełna informacja: &lt;a href="https://helion.pl/page/6050k/promocja/5995"&gt;Helion promocja 50 …&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 13 Oct 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-10-13:/helion-promocja-50-procent-pod-choinke-2018.html</guid><category>Python</category><category>python</category><category>promocja</category><category>helion</category><category>książka</category><category>ebook</category></item><item><title>W Helion promocja "Akcja student" i zniżki do 50%</title><link>https://blog.furas.pl/helion-promocja-akcja-student-i-znizki-do-50-procent-do-04-pazdziernika-2018.html</link><description>&lt;p&gt;W Helion zniżka do 50% przy zakupie dwóch tytułów z listy. Dotyczy to książek i ebooków.&lt;/p&gt;
&lt;p&gt;Są ta też tytuły o Pythonie.&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="https://helion.pl/page/6050k/kategorie/w-parze-taniej"&gt;Helion promocja "Akcja Student"&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 03 Oct 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-10-03:/helion-promocja-akcja-student-i-znizki-do-50-procent-do-04-pazdziernika-2018.html</guid><category>Python</category><category>python</category><category>promocja</category><category>helion</category><category>książka</category><category>ebook</category></item><item><title>W Helion urodzinowa promocja do 60% na ebooki</title><link>https://blog.furas.pl/helion-urodzinowa-promocja-na-ebooki-do-28-wrzesnia-2018.html</link><description>&lt;p&gt;W Helion.pl urodzinowe poprawiny do 28 września 2018 czyli zniżki nawet do &lt;strong&gt;60%&lt;/strong&gt; na ebooki.&lt;/p&gt;
&lt;p&gt;Obejmuje to też ebooki o Pythonie czy Machine Learning.&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="http://bit.ly/2OeRxua"&gt;Helion urodzinowe poprawiny&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 27 Sep 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-09-27:/helion-urodzinowa-promocja-na-ebooki-do-28-wrzesnia-2018.html</guid><category>Python</category><category>python</category><category>promocja</category><category>helion</category><category>książka</category><category>ebook</category></item><item><title>Jak poznac czy Python jest 32bit czy 64bit ?</title><link>https://blog.furas.pl/jak-poznac-czy-python-jest-32bit-czy-64bit.html</link><description>&lt;p&gt;Poniższy kod zwraca 32 lub 64 w zależności czy używamy wersję 32bit czy 64bit.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;struct&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;struct&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;calcsize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;P&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 24 Jul 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-07-24:/jak-poznac-czy-python-jest-32bit-czy-64bit.html</guid><category>Python</category><category>python</category></item><item><title>Jak w Pytonie znaleść wszystkie wystąpienia elementu na liście</title><link>https://blog.furas.pl/jak-w-pythonie-znalesc-wszystkie-wystapienia-elementu-na-liscie.html</link><description>&lt;p&gt;Jak znaleść wszystkie wystąpienia '$' w poniższym zbiorze ?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;10,537.4&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1,086.0&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;291.1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;465.3&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;12,379.8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Funkcja &lt;code&gt;.index(element)&lt;/code&gt; znajduje tylko pierwsze wystąpienie. &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;$&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Na szczęście posiada ona drugi parametr &lt;code&gt;.index(element, start)&lt;/code&gt;, który pozwala określić pozycję, od której zacząć …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 19 Jul 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-07-19:/jak-w-pythonie-znalesc-wszystkie-wystapienia-elementu-na-liscie.html</guid><category>Python</category><category>python</category></item><item><title>Jupyter z Pythonem na Azure</title><link>https://blog.furas.pl/jupyter-z-pythone-na-azure.html</link><description>&lt;p&gt;Microsoft daje w chmurze Azure darmowy dostęp do Jupytera z Pythonem, R, F#.&lt;/p&gt;
&lt;p&gt;Adres: &lt;a href="https://notebooks.azure.com/"&gt;notebooks.azure.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Usługa jest dostępna już od jakiegoś czasu.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Podobne:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://colab.research.google.com/"&gt;Google Colaboratory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jupyterlab.readthedocs.io/en/stable/index.html"&gt;Jupyter Lab&lt;/a&gt; na własnym komputerze&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 26 Jun 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-06-26:/jupyter-z-pythone-na-azure.html</guid><category>Python,</category><category>python</category><category>data science</category><category>jupyter</category><category>azure</category></item><item><title>PyPNG struct.error</title><link>https://blog.furas.pl/pypng-struct-error.html</link><description>&lt;p&gt;W trakcie zapisu do pliku PNG z użycie PyPNG trafiłem na błąd &lt;code&gt;struct.error&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;bitdepth=16&lt;/code&gt; pozwala przechować wartości od 0 do 65535 (inaczej (256*256)-1 )&lt;/p&gt;
&lt;p&gt;Jeśli wartość jest większa niż 65535 to pojawia się komunikat:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;struct&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;H&amp;#39;&lt;/span&gt; &lt;span class="nb"&gt;format&lt;/span&gt; &lt;span class="n"&gt;requires&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;65535&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Jeśli wartość jest mniejsza niż …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 25 Jun 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-06-25:/pypng-struct-error.html</guid><category>Python</category><category>python</category><category>pypng</category><category>error</category><category>struct</category><category>png</category></item><item><title>Few Definition</title><link>https://blog.furas.pl/2018.06.20-few-definitions.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/python/*.png" alt="python example"/&gt;
&lt;/div&gt;

&lt;h3&gt;IDE = Integrated Development Environment.&lt;/h3&gt;
&lt;p&gt;Something more then Text Editor. It can has extra functions like
- create and manage project
    - automatically generates needed folders and file, and configures needed copilers or other tools.
- predefined compilers or interpreters
- debuger (to search errors)
- profiler (to test which part use more time)
- database viewer …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Jun 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-06-20:/2018.06.20-few-definitions.html</guid><category>Python</category><category>python</category></item><item><title>PacktPub promocja 2018.06.19</title><link>https://blog.furas.pl/packtpub-promocja-2018-06-19-python-for-secret-agents.html</link><description>&lt;p&gt;Dzisiaj (2018.06.19 wtorek) darmowy:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.packtpub.com/packt/offers/free-learning"&gt;Python for Secret Agents&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Python for Secret Agents" src="https://d1ldz4te4covpm.cloudfront.net/sites/default/files/imagecache/ppv4_main_book_cover/0420OS_Python%20for%20Secret%20Agents_Mini.jpg"&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 19 Jun 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-06-19:/packtpub-promocja-2018-06-19-python-for-secret-agents.html</guid><category>Python</category><category>python</category><category>promocja</category><category>packtpub</category><category>książka</category><category>ebook</category></item><item><title>Helion promocja 2018.06.18</title><link>https://blog.furas.pl/helion-promocja-2018-06-18-przewodnik-po-pythonie.html</link><description>&lt;p&gt;Dzisiaj (2018.06.18 Poniedziałek) zniżka 30% na:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://helion.pl/view/6050k/BLOG/przewodnik-po-pythonie-dobre-praktyki-i-praktyczne-narzedzia-kenneth-reitz-tanya-schlusser,przepy.htm"&gt;Przewodnik po Pythonie. Dobre praktyki i praktyczne narzędzia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tłumaczenie książki &lt;a href="http://docs.python-guide.org/en/latest/"&gt;The Hitchhiker’s Guide to Python!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Angielska wersja jest za darmo na powyższej stronie i wygląda, że ma trochę odmienną (i bogatszą) zawartość. Widocznie tłumaczenie nie nadąża za oryginałem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 18 Jun 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-06-18:/helion-promocja-2018-06-18-przewodnik-po-pythonie.html</guid><category>Python</category><category>python</category><category>promocja</category><category>helion</category><category>książka</category><category>ebook</category></item><item><title>PacktPub promocja 2018.06.18</title><link>https://blog.furas.pl/packtpub-promocja-2018-06-18-artificial-intelligence-with-python.html</link><description>&lt;p&gt;Dzisiaj (2018.06.18 poniedziałek) darmowy:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.packtpub.com/packt/offers/free-learning"&gt;Artificial Intelligence with Python&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Artificial Intelligence with Python" src="https://dz13w8afd47il.cloudfront.net/sites/default/files/imagecache/ppv4_main_book_cover/4392OS_5663_Artificial%20Intelligence%20with%20Python.jpg"&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 18 Jun 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-06-18:/packtpub-promocja-2018-06-18-artificial-intelligence-with-python.html</guid><category>Python</category><category>python</category><category>promocja</category><category>packtpub</category><category>książka</category><category>ebook</category></item><item><title>Promocja do 60% na ebooki w Bookpoint</title><link>https://blog.furas.pl/promocja-na-ebooki-do-60-procent-w-bookpoint.html</link><description>&lt;p&gt;Z okazji targów ksiązki w Warszawie w Bookpoint promocja do 60% na wszelkie ebooki - w tym informatyczne (Python)&lt;/p&gt;
&lt;p&gt;Promocji trwa od 17.05.2018r. (czwartek) do 20.05.2018r. (niedziela)&lt;/p&gt;
&lt;p&gt;Link: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ebookpoint.pl/page/6050k/promocja/4831/informatyka"&gt;Promocja - informatyka&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ebookpoint.pl/page/6050k/promocja/4831/"&gt;Promocja - wszystkie&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 17 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-05-17:/promocja-na-ebooki-do-60-procent-w-bookpoint.html</guid><category>Python</category><category>python</category><category>promocja</category><category>ebook</category></item><item><title>Książki w przygotowaniu w Helion.pl (05.2018)</title><link>https://blog.furas.pl/ksiazki-w-przygotowaniu-helion-05-2018.html</link><description>&lt;p&gt;Ostatnia aktualizacja: 2018.05.15&lt;/p&gt;
&lt;h2&gt;Python&lt;/h2&gt;
&lt;table&gt;

&lt;tr&gt;
    &lt;td class="center"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/pyprin.htm" class="image"&gt;&lt;img src="https://static01.helion.com.pl/global/okladki/72x95/helion-brak.jpg" alt="???"/&gt;&lt;/a&gt;
    &lt;/td&gt;
    &lt;td class="top"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/pyprin.htm"&gt;Python. Programowanie w trybie interaktywnym&lt;/a&gt;&lt;br/&gt;
    &lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
    &lt;td class="center"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/iepypm.htm" class="image"&gt;&lt;img src="https://static01.helion.com.pl/global/okladki/72x95/helion-brak.jpg" alt="???"/&gt;&lt;/a&gt;
    &lt;/td&gt;
    &lt;td class="top"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/iepypm.htm"&gt;Informatyka Europejczyka. PYTHON. Programowanie na maturze&lt;/a&gt;&lt;br/&gt;
    &lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
    &lt;td class="center"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/pytand.htm" class="image"&gt;&lt;img src="https://static01.helion.com.pl/global/okladki/72x95/pytand.jpg" alt="???"/&gt;&lt;/a&gt;
    &lt;/td&gt;
    &lt;td class="top"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/pytand.htm"&gt;Python w analizie danych. Przetwarzanie danych za pomocą pakietów Pandas i NumPy oraz środowiska IPython. Wydanie II&lt;/a&gt;&lt;br/&gt;
    &lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
    &lt;td class="center"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/pytand_ebook.htm" class="image"&gt;&lt;img src="https://static01.helion.com.pl/global/okladki/72x95/pytand_ebook.jpg" alt="???"/&gt;&lt;/a&gt;
    &lt;/td&gt;
    &lt;td class="top"&gt;
        &lt;a href="https://helion.pl/view/6050k/blog/pytand_ebook.htm"&gt;Python w analizie danych. Przetwarzanie danych za pomocą pakietów Pandas i NumPy oraz środowiska IPython. Wydanie …&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 15 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-05-15:/ksiazki-w-przygotowaniu-helion-05-2018.html</guid><category>Python</category><category>python</category><category>ksiazki</category></item><item><title>Anaconda wprowadza certyfikaty dla Data Science</title><link>https://blog.furas.pl/anaconda-wprowadza-certyfikaty-dla-data-science.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/2018/Anaconda-Data-Science-Certification.jpg" alt="Anaconda-Data-Science-Certification"/&gt;
&lt;/div&gt;

&lt;p&gt;Z miesiąc temu &lt;a href="https://www.anaconda.com/"&gt;Anaconda&lt;/a&gt; wprowadziła program &lt;strong&gt;Certyfikaty dla Data Science&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Po wejściu do "Register Now" przekierowuje na portal &lt;a href="https://www.datacamp.com/certification-anaconda"&gt;DataCamp.com&lt;/a&gt; 
i tam można zobaczyć ceny za poszczególne etapy, które ostatecznie pozwalają do przystąpienia do egzaminu. &lt;/p&gt;
&lt;p&gt;Poszczególne etapy to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anaconda Foundations ($200&lt;/li&gt;
&lt;li&gt;Data Import &amp;amp; Export ($200)&lt;/li&gt;
&lt;li&gt;Data Manipulation and Analysis ($200 …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 10 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-05-10:/anaconda-wprowadza-certyfikaty-dla-data-science.html</guid><category>Python,</category><category>python</category><category>data science</category></item><item><title>Humble Bundle - Python Dev Kit</title><link>https://blog.furas.pl/humble-bundle-python-dev-kit.html</link><description>&lt;p&gt;&lt;img alt="humble bundle python dev kit" src="/images/2018/humble-bundle-python-dev-kit.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Na Humble Bundle do około 16 maja promocja na kilka usług i książek związanych z Pythonem.&lt;/p&gt;
&lt;p&gt;Link &lt;a href="https://www.humblebundle.com/software/python-dev-kit-bundle"&gt;Humble Bundle - Python Dev Kit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;za $1 (około €0.84)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://training.talkpython.fm/courses/explore_pythonic_code/write-pythonic-code-like-a-seasoned-developer"&gt;Write Pythonic Code Like a Seasoned Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jetbrains.com/pycharm/"&gt;PyCharm Professional Edition&lt;/a&gt; 2-miesiące subskrypcji, tylko nowi użytkownicy&lt;/li&gt;
&lt;li&gt;Illustrated Guide to Learning Python 3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;za $15 …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-05-09:/humble-bundle-python-dev-kit.html</guid><category>Python</category><category>python</category></item><item><title>Pandas zapowiada koniec wsparcia dla Python 2</title><link>https://blog.furas.pl/pandas-zapowiada-koniec-wsparcia-dla-python-2.html</link><description>&lt;p&gt;&lt;img alt="pandas kod na GitHub" src="/images/2018/pandas-koniec-python-2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;14 maja pojawiła się informacja, że &lt;a href="http://pandas.pydata.org/"&gt;Pandas&lt;/a&gt; od przyszłego roku porzuca wsparcie dla Python 2.&lt;/p&gt;
&lt;p&gt;Można to zobaczyć w kodzie na GitHub: https://github.com/pandas-dev/pandas/pull/20540/files&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-05-09:/pandas-zapowiada-koniec-wsparcia-dla-python-2.html</guid><category>Python</category><category>python</category></item><item><title>Promocja na IBM Watson od CognitiveClass.ai</title><link>https://blog.furas.pl/promocja-na-ibm-watson-od-cognitiveclass.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/2018/ibm-watson.png" alt="IBM Watson Machine Learning"/&gt;
&lt;/div&gt;

&lt;p&gt;Na portalu &lt;a href="https://cognitiveclass.ai/"&gt;CognitiveClass.ai&lt;/a&gt; (dawniej BigDataUniversity.com),
który oferuje darmowe kursy z Data Science, jakiś czas temu pojawiła się 
promocja na dostęp do &lt;a href="https://www.ibm.com/watson/"&gt;IBM Watson&lt;/a&gt; (IBM Cloud, machine learning, itp.) o wartości $1200
co zdaje się daje dostęp na jakies 6 miesięcy.&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="https://cognitiveclass.ai/ibm-cloud-promotion/"&gt;IBM Cloud Promotion&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 09 May 2018 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-05-09:/promocja-na-ibm-watson-od-cognitiveclass.html</guid><category>Python,</category><category>python</category><category>machine learning</category></item><item><title>Orange3 nowa wersja 3.11</title><link>https://blog.furas.pl/orange3-nowa-wersja-3-11.html</link><description>&lt;p&gt;&lt;a href="https://orange.biolab.si/"&gt;Orange3&lt;/a&gt; wydało nową wersję 3.11 &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://orange.biolab.si/download/"&gt;Download&lt;/a&gt;, &lt;a href="https://orange.biolab.si/screenshots/"&gt;Screenshots&lt;/a&gt;, &lt;a href="https://blog.biolab.si/"&gt;Blog&lt;/a&gt;, &lt;a href="https://orange.biolab.si/docs/"&gt;Docs&lt;/a&gt;, &lt;a href="https://www.youtube.com/channel/UClKKWBe2SCAEyv7ZNGhIe4g"&gt;YouTube&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 11 Mar 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-03-11:/orange3-nowa-wersja-3-11.html</guid><category>Machine Learning</category><category>machine learning</category><category>ml</category><category>python</category><category>orange</category></item><item><title>Książki o Pythonie w Helion.pl</title><link>https://blog.furas.pl/ksiazki-o-pythonie-w-helion-pl.html</link><description>&lt;p&gt;Aktualizacja: 2018.03.06&lt;/p&gt;
&lt;p&gt;&lt;a href="https://helion.pl/view/6050k/b/algorytmy-maciej-syslo,algory.htm"&gt;&lt;img alt="Algorytmy" src="https://static01.helion.com.pl/global/okladki/145x218/f554dee30a33cca89bf3dc69ea3e3c15,algory.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/aplikacje-internetowe-z-django-najlepsze-receptury-aidas-bendoraitis,apindj.htm"&gt;&lt;img alt="Aplikacje internetowe z Django. Najlepsze receptury" src="https://static01.helion.com.pl/global/okladki/145x218/29ea3b77b81ccc40c0d485f6a2c10964,apindj.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/automatyzacja-nudnych-zadan-z-pythonem-nauka-programowania-al-sweigart,autopy.htm"&gt;&lt;img alt="Automatyzacja nudnych zadań z Pythonem. Nauka programowania" src="https://static01.helion.com.pl/global/okladki/145x218/cbf89316ef1fa84b3a8922f6c9ac8ab5,autopy.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/black-hat-python-jezyk-python-dla-hakerow-i-pentesterow-justin-seitz,blahap.htm"&gt;&lt;img alt="Black Hat Python. Język Python dla hakerów i pentesterów" src="https://static01.helion.com.pl/global/okladki/145x218/159a4f7b67a6e19d95c478fdab67dba5,blahap.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/czujniki-dla-poczatkujacych-poznaj-otaczajacy-cie-swiat-za-pomoca-elektroniki-arduino-i-raspberry-p-kimmo-karvinen-tero-karvinen,czujpo.htm"&gt;&lt;img alt="Czujniki dla początkujących. Poznaj otaczający Cię świat za pomocą elektroniki, Arduino i Raspberry Pi" src="https://static01.helion.com.pl/global/okladki/145x218/ddce09c6423a780ea9a4953e96cd3b4b,czujpo.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/django-praktyczne-tworzenie-aplikacji-sieciowych-antonio-mele,djptas.htm"&gt;&lt;img alt="Django. Praktyczne tworzenie aplikacji sieciowych" src="https://static01.helion.com.pl/global/okladki/145x218/9fc1b6852d6b5e2e992b36a67c8e7da6,djptas.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/django-cwiczenia-praktyczne-piotr-malinski,cwdjan.htm#format/e"&gt;&lt;img alt="Django. Ćwiczenia praktyczne" src="https://static01.helion.com.pl/global/okladki/145x218/aa31fbf89d1ce60a39e49dce2601114e,cwdjan.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/efektywny-python-59-sposobow-na-lepszy-kod-brett-slatkin,efepyt.htm"&gt;&lt;img alt="Efektywny Python. 59 sposobów na lepszy kod" src="https://static01.helion.com.pl/global/okladki/145x218/986ea417b2c7d3731af52efed8a1cd4b,efepyt.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/hello-world-przygoda-z-programowaniem-dla-dzieci-i-absolutnie-poczatkujacych-wydanie-ii-warren-sande-carter-sande,hellow.htm"&gt;&lt;img alt="Hello World! Przygoda z programowaniem dla dzieci i absolutnie początkujących. Wydanie II" src="https://static01.helion.com.pl/global/okladki/145x218/a94af23b185ebd0b5e0531cde777b2ee,hellow.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/informatyka-europejczyka-podrecznik-dla-szkol-ponadgimnazjalnych-zakres-rozszerzony-czesc-1-wydan-grazyna-zawadzka,iepp13.htm"&gt;&lt;img alt="Informatyka Europejczyka. Podręcznik dla szkół ponadgimnazjalnych. Zakres rozszerzony. Część 1 (Wydanie III)" src="https://static01.helion.com.pl/global/okladki/145x218/e8b9ae514385a2ba9590de43805d828f,iepp13.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/inteligentna-siec-algorytmy-przyszlosci-wydanie-ii-douglas-mcilwraith-haralambos-marmanis-dmitry-bab,intsi2.htm"&gt;&lt;img alt="Inteligentna sieć. Algorytmy przyszłości. Wydanie II" src="https://static01.helion.com.pl/global/okladki/145x218/55904d9d9e681e8a7e23c340addb53b2,intsi2.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/mysl-w-jezyku-python-nauka-programowania-wydanie-ii-allen-b-downey,myjep2.htm"&gt;&lt;img alt="Myśl w języku Python! Nauka programowania. Wydanie II" src="https://static01.helion.com.pl/global/okladki/145x218/537969b22dee574b4a1344d2c7c4bb7b,myjep2.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/nauka-programowania-z-minecraftem-richardson-craig,a_03ch.htm"&gt;&lt;img alt="Nauka programowania z Minecraftem" src="https://static01.helion.com.pl/global/okladki/145x218/4834dcf652dca9111adc5de97b7e2219,e_05ug.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/nauka-robotyki-z-jezykiem-python-lentin-joseph,naropy.htm"&gt;&lt;img alt="Nauka robotyki z językiem Python" src="https://static01.helion.com.pl/global/okladki/145x218/028e7ce232cfe566cf12ee9c01699b66,naropy.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/profesjonalne-programowanie-w-pythonie-poziom-ekspert-wydanie-ii-michal-jaworski-tarek-ziade,prprpe.htm"&gt;&lt;img alt="Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie II" src="https://static01.helion.com.pl/global/okladki/145x218/8eb6982f220a33ba22984c1781b38138,prprpe.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/programowanie-dla-poczatkujacych-mark-a-lassoff,propoc.htm"&gt;&lt;img alt="Programowanie dla początkujących" src="https://static01.helion.com.pl/global/okladki/145x218/e45f59d0fa56f7297e7b16f62f2e5f13,propoc.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/programowanie-wspolbiezne-systemy-czasu-rzeczywistego-pawel-majdzik,prowsp.htm"&gt;&lt;img alt="Programowanie współbieżne. Systemy czasu rzeczywistego" src="https://static01.helion.com.pl/global/okladki/145x218/718492462b3b5fb30cb9f096bc91fed0,prowsp.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/przetwarzanie-i-analiza-danych-w-jezyku-python-gagolewski-marek-bartoszuk-maciej-cena-anna,a_03yh.htm"&gt;&lt;img alt="Przetwarzanie i analiza danych w języku Python" src="https://static01.helion.com.pl/global/okladki/145x218/a1d491b02491391fb9cf820be2ff63f8,a_03yh.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/przewodnik-po-pythonie-dobre-praktyki-i-praktyczne-narzedzia-kenneth-reitz-tanya-schlusser,przepy.htm"&gt;&lt;img alt="Przewodnik po Pythonie. Dobre praktyki i praktyczne narzędzia" src="https://static01.helion.com.pl/global/okladki/145x218/289fa448f2de2a6dec77da26fd9ae878,przepy.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-14-tworczych-projektow-dla-dociekliwych-programistow-mahesh-venkitachalam,pythtp.htm"&gt;&lt;img alt="Python. 14 twórczych projektów dla dociekliwych programistów" src="https://static01.helion.com.pl/global/okladki/145x218/1419bce7f5889a7961c31c296f5842e6,pythtp.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-c-javascript-zadania-z-programowania-marek-lulinski-gniewomir-sarbicki,pycjsz.htm"&gt;&lt;img alt="Python, C++, JavaScript. Zadania z programowania" src="https://static01.helion.com.pl/global/okladki/145x218/b4f22e34a0b131daf9c3ee3d046fe032,pycjsz.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-dla-dzieci-programowanie-na-wesolo-jason-r-briggs,a_03ca.htm"&gt;&lt;img alt="Python dla dzieci. Programowanie na wesoło" src="https://static01.helion.com.pl/global/okladki/145x218/d8c165cd8349186a0c7ec3a3a6a6c319,a_03ca.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-dla-kazdego-podstawy-programowania-wydanie-iii-michael-dawson,pytdk3.htm"&gt;&lt;img alt="Python dla każdego. Podstawy programowania. Wydanie III" src="https://static01.helion.com.pl/global/okladki/145x218/374a3711ee80532a449f91e814755bdb,pytdk3.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-dla-profesjonalistow-debugowanie-testowanie-i-utrzymywanie-kodu-kristian-rother,pytpro.htm"&gt;&lt;img alt="Python dla profesjonalistów. Debugowanie, testowanie i utrzymywanie kodu" src="https://static01.helion.com.pl/global/okladki/145x218/bddac9bb846d59c8cd80a2782c15755b,pytpro.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-i-django-programowanie-aplikacji-webowych-jeff-forcier-paul-bissex-wesley-chun,pydjan.htm"&gt;&lt;img alt="Python i Django. Programowanie aplikacji webowych" src="https://static01.helion.com.pl/global/okladki/145x218/0a0b05dea71d784c888d3bf6563497a2,pydjan.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-instrukcje-dla-programisty-eric-matthes,pythip.htm"&gt;&lt;img alt="Python. Instrukcje dla programisty" src="https://static01.helion.com.pl/global/okladki/145x218/2800e7319e28c5207121c7871af7bd64,pythip.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-kurs-video-poziom-pierwszy-podstawy-programowania-i-tworzenia-aplikacji-joanna-zatorska,vpytho.htm#format/w"&gt;&lt;img alt="Python. Kurs video. Poziom pierwszy. Podstawy programowania i tworzenia aplikacji" src="https://static01.helion.com.pl/global/okladki/145x218/817e88fb008e22823956596b9c5accf8,vpytho.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-leksykon-kieszonkowy-wydanie-iv-mark-lutz,pythl4.htm#format/e"&gt;&lt;img alt="Python. Leksykon kieszonkowy. Wydanie IV" src="https://static01.helion.com.pl/global/okladki/145x218/812f35ff932735bc3a08be6cbd14e658,pythl4.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-leksykon-kieszonkowy-wydanie-v-mark-lutz,pythl5.htm"&gt;&lt;img alt="Python. Leksykon kieszonkowy. Wydanie V" src="https://static01.helion.com.pl/global/okladki/145x218/7e005e307ff77316b83657278e48e4e4,pythl5.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-na-start-programowanie-dla-nastolatkow-michal-wiszniewski,zaprpy.htm"&gt;&lt;img alt="Python na start! Programowanie dla nastolatków" src="https://static01.helion.com.pl/global/okladki/145x218/d91a708f79f9d7f8ac2a7ae4b99bcc83,zaprpy.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-podstawy-nauki-o-danych-wydanie-ii-alberto-boschetti-luca-massaron,pypod2.htm"&gt;&lt;img alt="Python. Podstawy nauki o danych. Wydanie II" src="https://static01.helion.com.pl/global/okladki/145x218/45799bcf1757438f04e1d1a8c8753f6c,pypod2.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-programuj-szybko-i-wydajnie-micha-gorelick-ian-ozsvald,pytpsw.htm"&gt;&lt;img alt="Python. Programuj szybko i wydajnie" src="https://static01.helion.com.pl/global/okladki/145x218/b415796dd24ce451d880a11eeccd8acd,pytpsw.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-projekty-do-wykorzystania-james-o-knowlton,pytprw.htm#format/e"&gt;&lt;img alt="Python. Projekty do wykorzystania" src="https://static01.helion.com.pl/global/okladki/145x218/0d6af379ce32cabe26495e75a96b0be4,pytprw.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-receptury-wydanie-iii-david-beazley-brian-k-jones,pytre3.htm"&gt;&lt;img alt="Python. Receptury. Wydanie III" src="https://static01.helion.com.pl/global/okladki/145x218/c3f571b4332ed448185de25499f80133,pytre3.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-rozmowki-brad-dayley,pythro.htm"&gt;&lt;img alt="Python. Rozmówki" src="https://static01.helion.com.pl/global/okladki/145x218/5bdb26087cc66904f5a04e6026b9519f,pythro.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-rusz-glowa-wydanie-ii-paul-barry,pytrg2.htm"&gt;&lt;img alt="Python. Rusz głową! Wydanie II" src="https://static01.helion.com.pl/global/okladki/145x218/9447c7a7cc6acb77596fb5c5c1c798d9,pytrg2.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-uczenie-maszynowe-sebastian-raschka,pythum.htm"&gt;&lt;img alt="Python. Uczenie maszynowe" src="https://static01.helion.com.pl/global/okladki/145x218/17227cae3417420eead047fb9e484493,pythum.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-cwiczenia-praktyczne-andrzej-kierzkowski-marek-gawryszewski,cwpyth.htm"&gt;&lt;img alt="Python. Ćwiczenia praktyczne" src="https://static01.helion.com.pl/global/okladki/145x218/d9be819fff1641bd100c027adc64bb81,cwpyth.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-wprowadzenie-mark-lutz-david-ascher,python.htm"&gt;&lt;img alt="Python. Wprowadzenie" src="https://static01.helion.com.pl/global/okladki/145x218/003eb82f8154005e90443bd440e04362,python.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-wprowadzenie-wydanie-iii-mark-lutz,pythw3.htm"&gt;&lt;img alt="Python. Wprowadzenie. Wydanie III" src="https://static01.helion.com.pl/global/okladki/145x218/30e06e9ab2e9a99212ab6f923a94d593,pythw3.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/python-wprowadzenie-wydanie-iv-mark-lutz,pytho4.htm"&gt;&lt;img alt="Python. Wprowadzenie. Wydanie IV" src="https://static01.helion.com.pl/global/okladki/145x218/5b8dec179ce84d75812750a6bce8f9db,pytho4.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/raspberry-pi-najlepsze-projekty-andrew-robinson-mike-cook,raspnp.htm"&gt;&lt;img alt="Raspberry Pi. Najlepsze projekty" src="https://static01.helion.com.pl/global/okladki/145x218/85ba7758d8e6b2693ebf86885d0252a6,raspnp.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/raspberry-pi-przewodnik-dla-programistow-pythona-simon-monk,rasppy.htm"&gt;&lt;img alt="Raspberry Pi. Przewodnik dla programistów Pythona" src="https://static01.helion.com.pl/global/okladki/145x218/dbe7545a7edba16f8c309b200d1cd182,rasppy.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/raspberry-pi-przewodnik-uzytkownika-gareth-halfacree-eben-upton,rasppi.htm"&gt;&lt;img alt="Raspberry Pi. Przewodnik użytkownika" src="https://static01.helion.com.pl/global/okladki/145x218/1490a267c0b0d10403b509db36b35ede,rasppi.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/raspberry-pi-przewodnik-uzytkownika-wydanie-iii-eben-upton-gareth-halfacree,raspp3.htm"&gt;&lt;img alt="Raspberry Pi. Przewodnik użytkownika. Wydanie III" src="https://static01.helion.com.pl/global/okladki/145x218/523960bc3fb21ab2464ad600a9a50221,raspp3.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/raspberry-pi-receptury-simon-monk,raspre.htm"&gt;&lt;img alt="Raspberry Pi. Receptury" src="https://static01.helion.com.pl/global/okladki/145x218/4b9953a4c9b907695b33881cea4d009b,raspre.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/tablice-informatyczne-python-adalbert-arsen,tipyth.htm"&gt;&lt;img alt="Tablice informatyczne. Python" src="https://static01.helion.com.pl/global/okladki/145x218/4cd7df828f920681555fbb4c5c314674,tipyth.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/tdd-w-praktyce-niezawodny-kod-w-jezyku-python-harry-j-w-percival,tddwpr.htm"&gt;&lt;img alt="TDD w praktyce. Niezawodny kod w języku Python" src="https://static01.helion.com.pl/global/okladki/145x218/4dc374f46115c8f3956b4ab26824d072,tddwpr.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/tworz-wlasne-gry-komputerowe-w-pythonie-al-sweigart,a_03yk.htm"&gt;&lt;img alt="Twórz własne gry komputerowe w Pythonie" src="https://static01.helion.com.pl/global/okladki/145x218/da3736c3d4a3192a6af5ee928b921587,a_03yk.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/uczymy-dzieci-programowania-przyjazny-przewodnik-po-programowaniu-w-pythonie-payne-bryson,a_045k.htm"&gt;&lt;img alt="Uczymy dzieci programowania. Przyjazny przewodnik po programowaniu w Pythonie" src="https://static01.helion.com.pl/global/okladki/145x218/05fe4dee8fedc6b1c9044e2c4fdd1ddc,a_045k.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/wielkie-umysly-programowania-jak-mysla-i-pracuja-tworcy-najwazniejszych-jezykow-federico-biancuzzi-shane-warden,wieumy.htm#format/e"&gt;&lt;img alt="Wielkie umysły programowania. Jak myślą i pracują twórcy najważniejszych języków" src="https://static01.helion.com.pl/global/okladki/145x218/6c9895e57c7bbb3c60e7980e85d0c0ff,wieumy.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/zaawansowane-uczenie-maszynowe-z-jezykiem-python-john-hearty,zaaucz.htm"&gt;&lt;img alt="Zaawansowane uczenie maszynowe z językiem Python" src="https://static01.helion.com.pl/global/okladki/145x218/dacc737cebdeb2ad31f10ee90ee5c93e,zaaucz.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/zaawansowany-python-luciano-ramalho,e_07wh.htm#format/e"&gt;&lt;img alt="Zaawansowany Python" src="https://static01.helion.com.pl/global/okladki/145x218/de6271c89c3d4f2a17de4414f1016d02,e_07wh.jpg"&gt;&lt;/a&gt;
&lt;a href="https://helion.pl/view/6050k/b/zwinna-analiza-danych-apache-hadoop-dla-kazdego-russell-jurney,zwiand.htm"&gt;&lt;img alt="Zwinna analiza danych. Apache Hadoop dla każdego" src="https://static01.helion.com.pl/global/okladki/145x218/7ad4e2caf84fd10c5bad2718ec2101d5,zwiand.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/algorytmy-maciej-syslo,algory.htm"&gt;Algorytmy&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/aplikacje-internetowe-z-django-najlepsze-receptury-aidas-bendoraitis,apindj.htm"&gt;Aplikacje internetowe z Django. Najlepsze receptury&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/automatyzacja-nudnych-zadan-z-pythonem-nauka-programowania-al-sweigart,autopy.htm"&gt;Automatyzacja nudnych zadań z Pythonem. Nauka programowania&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/black-hat-python-jezyk-python-dla-hakerow-i-pentesterow-justin-seitz,blahap.htm"&gt;Black Hat Python. Język Python dla hakerów i pentesterów&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/czujniki-dla-poczatkujacych-poznaj-otaczajacy-cie-swiat-za-pomoca-elektroniki-arduino-i-raspberry-p-kimmo-karvinen-tero-karvinen,czujpo.htm"&gt;Czujniki dla początkujących. Poznaj otaczający Cię świat za pomocą elektroniki, Arduino i Raspberry Pi&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/django-praktyczne-tworzenie-aplikacji-sieciowych-antonio-mele,djptas.htm"&gt;Django. Praktyczne tworzenie aplikacji sieciowych&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/django-cwiczenia-praktyczne-piotr-malinski,cwdjan.htm#format/e"&gt;Django. Ćwiczenia praktyczne&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://helion.pl/view/6050k/b/efektywny-python-59-sposobow-na-lepszy-kod-brett-slatkin,efepyt.htm"&gt;Efektywny …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 06 Mar 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-03-06:/ksiazki-o-pythonie-w-helion-pl.html</guid><category>Python</category><category>python</category></item><item><title>Helion promocja Walentykowa 2018</title><link>https://blog.furas.pl/helion-promocja-walentykowa-2018.html</link><description>&lt;div class="center"&gt;
&lt;a href="http://bit.ly/2Ep7olP"&gt;&lt;img src="/images/2018/helion_promocja_walentynki_2018.jpg" alt="helion promocja walentynki 2018"/&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Na Helion promocja Walentykowa - 2za1 - kupując dwie książki tańsza gratis. &lt;/p&gt;
&lt;p&gt;Jeśli kupić dwie o podobnej cenie to wychodzi 50% za każdą.&lt;/p&gt;
&lt;p&gt;Są tam też tytuły o Pythonie .&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bit.ly/2Ep7olP"&gt;Helion - promocja Walentynkowa 2018&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 13 Feb 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-02-13:/helion-promocja-walentykowa-2018.html</guid><category>Python</category><category>python</category><category>promocja</category><category>helion</category></item><item><title>fabfile i żółćżółć dla MyDevil.pl</title><link>https://blog.furas.pl/fabfile-i-zolczolc-dla-mydevil-pl.html</link><description>&lt;p&gt;Oto przykładowy plik z dokumentacji &lt;a href="http://www.fabfile.org/"&gt;Fabric&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;fabric.api&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;host_type&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;uname -s&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Przy jego zastosowaniu dla &lt;a href="http://mydevil.pl"&gt;MyDevil.pl&lt;/a&gt; otrzymujemy napis &lt;code&gt;żółćżółć&lt;/code&gt; 
a połączenie czeka na dalsze informacje z serwera więc trzeba je przerwać za pomocą &lt;code&gt;Ctrl+C&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ fab -H furas@s14.mydevil.net host_type
&lt;span class="o"&gt;[&lt;/span&gt;furas@s14 …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 22 Jan 2018 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2018-01-22:/fabfile-i-zolczolc-dla-mydevil-pl.html</guid><category>Python</category><category>python</category></item><item><title>Przegląd DataSets według EliteDataScience</title><link>https://blog.furas.pl/przeglad-datasets-wedlug-elitedatascience.html</link><description>&lt;p&gt;Źródło: &lt;a href="https://elitedatascience.com/datasets"&gt;Datasets for Data Science and Machine Learning&lt;/a&gt; na &lt;a href="https://elitedatascience.com"&gt;EliteDataScience&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Portal &lt;a href="https://elitedatascience.com"&gt;EliteDataScience&lt;/a&gt; postanowił pogrupować różne zbiory danych (DataSets) według przeznaczenia&lt;/p&gt;
&lt;h2&gt;Exploratory Analysis &lt;em&gt;(ogólna analiza)&lt;/em&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.kaggle.com/mylesoneill/game-of-thrones"&gt;informacje o Game of Thrones&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.kaggle.com/mylesoneill/world-university-rankings"&gt;rankingi uniwersytetów&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.kaggle.com/deepmatrix/imdb-5000-movie-dataset"&gt;5000+ filmów z IMDB&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(więcej: &lt;a href="https://www.kaggle.com/datasets"&gt;Kaggle Datasets&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/datasets/top/?sort=top&amp;amp;t=all"&gt;r/datasets (Reddit)&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;Machine Learning &lt;em&gt;(regresja, klasyfikacja, grupowanie)&lt;/em&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://archive.ics.uci.edu/ml/datasets/Wine+Quality"&gt;jakość wina&lt;/a&gt; białego i …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 22 Aug 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2017-08-22:/przeglad-datasets-wedlug-elitedatascience.html</guid><category>Machine Learning</category><category>machine learning</category></item><item><title>Visual Vocabulary - przegląd wykresów</title><link>https://blog.furas.pl/visual-vocabulary-przeglad-wykresow.html</link><description>&lt;p&gt;&lt;a href="http://ft-interactive.github.io/visual-vocabulary/"&gt;Visual Vocabulary&lt;/a&gt; - przegląd różnych wykresów pogrupowanych według zastosowania: Deviation, Correlation, Change v Time, Ranking, Distribution, Part to whole, Magnitude, Spatial, Flow&lt;/p&gt;
&lt;p&gt;Przyład: Correlation&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="/images/2017/visual-vocabulary-correlation.png" alt="przykład wykresów"/&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 11 Aug 2017 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2017-08-11:/visual-vocabulary-przeglad-wykresow.html</guid><category>Inne</category><category>inne</category><category>short</category><category>links</category></item><item><title>Bitly_API on Python 3</title><link>https://blog.furas.pl/bitly-api-on-python-3.html</link><description>&lt;p&gt;There is old version in &lt;code&gt;pip&lt;/code&gt; which doesn't work with Python 3.5. It has problem event with &lt;code&gt;import bitly_api&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;You have to install code from Github: &lt;a href="https://github.com/bitly/bitly-api-python"&gt;bitly/bitply_api&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I use &lt;code&gt;pip3&lt;/code&gt; and &lt;code&gt;python3&lt;/code&gt; instead of &lt;code&gt;pip&lt;/code&gt; and &lt;code&gt;python&lt;/code&gt; because I have many versions installed.&lt;/p&gt;
&lt;p&gt;If you don't have &lt;code&gt;pip3 …&lt;/code&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 01 Jan 2017 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2017-01-01:/bitly-api-on-python-3.html</guid><category>Python</category><category>python</category></item><item><title>Python: How to use AJAX in Flask using jQuery or fetch</title><link>https://blog.furas.pl/python-how-to-use-ajax-in-flask-using-jquery-or-fetch-gb.html</link><description>&lt;p&gt;HTML:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;foobar&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ajax&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/test/ajax&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;application/json;charset=UTF-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\t&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;dataType&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;success&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Flask:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;@app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/test/ajax&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;&lt;span class="n"&gt;&amp;#39;GET&amp;#39;, &amp;#39;POST&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;test_ajax&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;request …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 26 Dec 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-12-26:/python-how-to-use-ajax-in-flask-using-jquery-or-fetch-gb.html</guid><category>Python</category><category>python</category><category>flask</category><category>javascript</category></item><item><title>Python: Jak użyć AJAX w Flask za pomocą jQuery lub fetch.</title><link>https://blog.furas.pl/python-jak-uzyc-ajax-w-flask-za-pomoca-jquery-lub-fetch.html</link><description>&lt;p&gt;HTML:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ID&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;foobar&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ajax&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/test/ajax&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;contentType&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;application/json;charset=UTF-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\t&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;dataType&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;success&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;url&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Flask:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;@app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/test/ajax&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;&lt;span class="n"&gt;&amp;#39;GET&amp;#39;, &amp;#39;POST&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="n"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;test_ajax&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;request …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 26 Dec 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-12-26:/python-jak-uzyc-ajax-w-flask-za-pomoca-jquery-lub-fetch.html</guid><category>Python</category><category>python</category><category>flask</category><category>javascript</category></item><item><title>Python: How to use JavaScript in Flask to create dynamic updated page without reloading to display suggestions.</title><link>https://blog.furas.pl/python-how-to-use-javascript-in-flask-to-create-dynamic-updated-page-without-reloading-to-display-suggestions-gb.html</link><description>&lt;p&gt;&lt;strong&gt;app.py&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;


&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;index.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/suggestions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;suggestions&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;jsdata&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;suggestions_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://suggestqueries.google.com/complete/search?output=toolbar&amp;amp;hl …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 04 Dec 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-12-04:/python-how-to-use-javascript-in-flask-to-create-dynamic-updated-page-without-reloading-to-display-suggestions-gb.html</guid><category>Python</category><category>python</category><category>flask</category><category>javascript</category></item><item><title>Python: Jak użyć JavaScript w Flask aby stworzyć dynamicznie aktualizującą się stronę bez jej przeładowywania aby wyświetlać sugestie.</title><link>https://blog.furas.pl/python-jak-uzyc-javascript-w-flask-aby-stworzyc-dynamicznie-aktualizujaca-sie-strone-bez-jej-przeladowywania-aby-wyswietlac-sugestie.html</link><description>&lt;p&gt;&lt;strong&gt;app.py&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;


&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;index.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="nd"&gt;@app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/suggestions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;suggestions&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;jsdata&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;suggestions_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://suggestqueries.google.com/complete/search?output=toolbar&amp;amp;hl …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 04 Dec 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-12-04:/python-jak-uzyc-javascript-w-flask-aby-stworzyc-dynamicznie-aktualizujaca-sie-strone-bez-jej-przeladowywania-aby-wyswietlac-sugestie.html</guid><category>Python</category><category>python</category><category>flask</category><category>javascript</category></item><item><title>[Link] Przewijanie ekranu w grach</title><link>https://blog.furas.pl/link-przewijanie-ekranu-w-grach.html</link><description>&lt;p&gt;(GDG Value 2015) Interesująca prezentacja (52min) na temat przewijania ekranu w grach.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gdcvault.com/play/1022243/Scroll-Back-The-Theory-and"&gt;The Theory and Practice of Cameras in Side-Scrollers&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 07 Aug 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-08-07:/link-przewijanie-ekranu-w-grach.html</guid><category>Inne</category><category>inne</category><category>game</category></item><item><title>Darmowa grafika i sprity do gier</title><link>https://blog.furas.pl/darmowa-grafika-i-sprity-do-gier.html</link><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.widgetworx.com/spritelib/"&gt;SpriteLib&lt;/a&gt; (by Ari Feldman) oraz &lt;a href="http://www.widgetworx.com/book/"&gt;Designing Arcade Computer Game Graphics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codeandweb.com/what-is-a-sprite-sheet"&gt;What is a sprite sheet? Part 1: The basics &amp;amp; reducing memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codeandweb.com/what-is-a-sprite-sheet-performance"&gt;What is a sprite sheet? Part 2: Performance &amp;amp; OpenGL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gameart2d.com/"&gt;Game Art 2D&lt;/a&gt; - &lt;a href="http://www.gameart2d.com/freebies.html"&gt;COMPLETELY FREE GAME ASSETS&lt;/a&gt; (FREE SPRITES,FREE TILESET,FREE GAME GUI,MISCELLANEOUS GAME ASSETS)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://constructg.com/game-graphics/"&gt;game-graphics&lt;/a&gt; (Kenny), &lt;a href="https://constructg.com/free-sound-effects/"&gt;free-sound-effects …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 16 Jul 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-07-16:/darmowa-grafika-i-sprity-do-gier.html</guid><category>Inne</category><category>inne</category><category>gry</category><category>grafika</category><category>sprite</category></item><item><title>Książka "Python For Everyone" - zabójcza cena.</title><link>https://blog.furas.pl/ksiazka-python-for-everyone.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/2016/2016.07.16__ksiazka-python-for-everyone__700x679.png" alt="python example"/&gt;
&lt;/div&gt;

&lt;p&gt;&lt;a href="http://prus24.pl/bookstore,details,9781119056553,PYTHON-FOR-EVERYONE.html"&gt;Python For Everyone&lt;/a&gt; - cena: 1120,42 zł.&lt;/p&gt;
&lt;p&gt;Przy takiej cenie Python raczej nie dla każdego :)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://prus24.pl/bookstore,catalog,ksiazki.html?author=65253382"&gt;Inne tytuły tego autora&lt;/a&gt; też są w podobnie wysokiej cenie.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 16 Jul 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-07-16:/ksiazka-python-for-everyone.html</guid><category>Python</category><category>python</category></item><item><title>Shedulers - wykonywanie zadań w odstępie czasu</title><link>https://blog.furas.pl/my-super-post.html</link><description>&lt;p class="first last"&gt;Short version for index and feeds&lt;/p&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej furas Burek</dc:creator><pubDate>Fri, 01 Jul 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-07-01:/my-super-post.html</guid><category>Python</category><category>thats</category><category>awesome</category></item><item><title>Helion promocja Wakacje [2016]</title><link>https://blog.furas.pl/helion-promocja-wakacje-2016.html</link><description>&lt;p&gt;W Helion kolejny pretekst do przeceny - Wakacje :)&lt;/p&gt;
&lt;p&gt;Od 24 do 27 czerwca 2016 jest zniżka 20% na książki i 40% na ebooki.&lt;/p&gt;
&lt;p&gt;Wśród nich są też te o Pythonie i Django.&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="http://bit.ly/e-wakacje-2016"&gt;bit.ly/e-wakacje-2016&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 24 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-24:/helion-promocja-wakacje-2016.html</guid><category>Python</category><category>python</category></item><item><title>Książki w przygotowaniu</title><link>https://blog.furas.pl/ksiazki-w-przygotowaniu.html</link><description>&lt;p&gt;Ostatnia aktualizacja: 2016.06.24&lt;/p&gt;
&lt;h2&gt;Python &amp;amp; Machine Learning&lt;/h2&gt;
&lt;h3&gt;&lt;a href="http://bit.ly/python-instrukcje"&gt;Python. Instrukcje dla programisty.&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Autor: Eric Matthes&lt;/p&gt;
&lt;p&gt;Termin: październik 2016&lt;/p&gt;
&lt;p&gt;Oryginał: &lt;a href="https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036/189-2560872-9317768"&gt;Python Crash Course: A Hands-On, Project-Based Introduction to Programming&lt;/a&gt;&lt;br&gt;
Data: November 30, 2015&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="https://static01.helion.com.pl/global/okladki/326x466/pythip.jpg" alt="Python. Instrukcje dla programisty."/&gt;
&lt;/div&gt;

&lt;p&gt;Link: &lt;a href="http://bit.ly/python-instrukcje"&gt;bit.ly/python-instrukcje&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 24 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-24:/ksiazki-w-przygotowaniu.html</guid><category>Python</category><category>python</category></item><item><title>Newslettery na temat Pythona</title><link>https://blog.furas.pl/newslettery-na-temat-pythona.html</link><description>&lt;p&gt;Uwaga: Newslettery zakładają przesyłanie informacji na maila ale wiele z nich przekazuje informacje też poprzez Facebook lub Twitter i wtedy nie trzeba się zapisywać.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;&lt;a href="http://www.pythonweekly.com/"&gt;Python Weekly&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A free weekly newsletter featuring curated news, articles, new releases, jobs etc related to Python.
Curated by Rahul Chaudhary — every &lt;strong&gt;Thursday&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;twitter: &lt;a href="https://twitter.com/pythonweekly"&gt;@pythonweekly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;facebook …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 24 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-24:/newslettery-na-temat-pythona.html</guid><category>Python</category><category>python</category><category>news</category></item><item><title>DuckDuckGo i "natychmiastowe odpowiedzi"</title><link>https://blog.furas.pl/duckduckgo-i-natychmiastowe-odpowiedzi.html</link><description>&lt;p&gt;Strona &lt;a href="https://duckduckgo.com"&gt;DuckDuckGo.com&lt;/a&gt; na pewne zapytania potrafi dać natychmiastową odpowiedź wykonując specjalne skrypty stworzone przez użytkowników strony.&lt;/p&gt;
&lt;p&gt;Poniżej kilka przykładów, które wydały mi się interesujące.&lt;/p&gt;
&lt;h2&gt;Natychmiastowa odpowiedź (ang. instant answer)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://duckduckgo.com/?q=password+10&amp;amp;ia=answer"&gt;password 10&lt;/a&gt;&lt;br&gt;
&lt;a href="https://duckduckgo.com/?q=password+10+strong&amp;amp;ia=answer"&gt;password 10 strong&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Generuje 10-literowe hasło z użyciem liter i cyfr. W przypadku użycia "strong" wykorzystuje też inne …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 15 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-15:/duckduckgo-i-natychmiastowe-odpowiedzi.html</guid><category>Inne</category><category>inne</category></item><item><title>Promocja 45% na ebooki w ebookpoint.pl</title><link>https://blog.furas.pl/promocja-45-na-ebooki-w-ebookpoint-pl.html</link><description>&lt;p&gt;W ebookpoint.pl od 15 do 21 czerwca zniżka 45% na kilka wybranych ebooków w tym na "TDD w praktyce. Niezawodny kod w języku Python".&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="http://bit.ly/24PmPVD"&gt;http://bit.ly/24PmPVD&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 15 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-15:/promocja-45-na-ebooki-w-ebookpoint-pl.html</guid><category>Python</category><category>python</category><category>news</category><category>promocja</category></item><item><title>Promocja 45% "Złota 10-tka" w helion.pl</title><link>https://blog.furas.pl/promocja-45-zlota-dziesiatka-w-helion-pl.html</link><description>&lt;p&gt;W helion.pl od 14 do 15 czerwca zniżka 45% na dziesięć tytułów wybranych przez użytkowników facebook'a'. Jest wśród nich "Python. Wprowadzenie".&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="bit.ly/zlota-10-tka"&gt;bit.ly/zlota-10-tka&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 14 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-14:/promocja-45-zlota-dziesiatka-w-helion-pl.html</guid><category>Python</category><category>python</category><category>news</category><category>promocja</category></item><item><title>Wyniki ankiety PyCharm</title><link>https://blog.furas.pl/wyniki-ankiety-pycharm.html</link><description>&lt;p&gt;Wyniki ankiety wykonanej przez JetBrains/PyCharm wśród użytkowników Pythona.&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="https://www.jetbrains.com/pycharm/python-developers-survey-2016/"&gt;Python Developers Survey 2016: Findings&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 14 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-14:/wyniki-ankiety-pycharm.html</guid><category>Python</category><category>python</category><category>news</category></item><item><title>Różności - Python - 2016.06.12</title><link>https://blog.furas.pl/rozne-2016-06-12.html</link><description>&lt;p&gt;&lt;strong&gt;Cheat Mugs&lt;/strong&gt; czyli nadruki na kubek z podpowiedziami - obecnie tylko &lt;code&gt;Python&lt;/code&gt; i &lt;code&gt;tmux&lt;/code&gt; ale pomysł można wykorzystać do stworzenia własnych nadruków :)&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="https://github.com/gokcehan/cheat-mugs"&gt;https://github.com/gokcehan/cheat-mugs&lt;/a&gt;&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="https://github.com/gokcehan/cheat-mugs/raw/master/python-l.jpg" alt="python cheat mugs"/&gt;&lt;img src="https://github.com/gokcehan/cheat-mugs/raw/master/python-m.jpg" alt="python cheat mugs"/&gt;&lt;img src="https://github.com/gokcehan/cheat-mugs/raw/master/python-r.jpg" alt="python cheat mugs"/&gt;
&lt;/div&gt;

&lt;hr&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 12 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-12:/rozne-2016-06-12.html</guid><category>Python</category><category>python</category><category>roznosci</category></item><item><title>Nauka Linuksa za darmo na LinuxJourney.com</title><link>https://blog.furas.pl/linux-journey-nauka%20linuksa-za-darmo.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/2016/linux-journey.jpg" alt="linux journey"/&gt;
&lt;/div&gt;

&lt;p&gt;link: &lt;a href="https://linuxjourney.com/"&gt;Linux Journey&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 08 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-08:/linux-journey-nauka linuksa-za-darmo.html</guid><category>Linux</category><category>linux</category><category>nauka</category><category>darmo</category></item><item><title>Dzień Informatyka 2016</title><link>https://blog.furas.pl/dzien-informatyka-2016.html</link><description>&lt;p&gt;Nadchodzi Dzień Informatyka (8 czerwca) i znowu promocja w Helion - 6-8 czerwca druga książka za 50% ceny. Obejmuje to też książki o Pythonie.&lt;/p&gt;
&lt;p&gt;Link: &lt;a href="http://bit.ly/dzien-informatyka-2016"&gt;bit.ly/dzien-informatyka-2016&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 06 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-06:/dzien-informatyka-2016.html</guid><category>Python</category><category>python</category></item><item><title>PyCon 2016 nagrania video na YouTube</title><link>https://blog.furas.pl/pycon-2016-nagrania-video-na-youtube.html</link><description>&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCwTD5zJbsQGJN75MwbykYNw/videos"&gt;Nagrania z PyCon 2016 na YouTube&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 01 Jun 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-06-01:/pycon-2016-nagrania-video-na-youtube.html</guid><category>Python</category><category>python</category><category>news</category></item><item><title>Books for Python</title><link>https://blog.furas.pl/books-for-python-2016.html</link><description>&lt;h1&gt;Free&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.fullstackpython.com"&gt;Full Stack Python&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://chimera.labs.oreilly.com/books/1234000000754/index.html"&gt;Test-Driven Development with Python&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://automatetheboringstuff.com/"&gt;Automate the Boring Stuff with Python&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/lincolnloop/django-best-practices"&gt;Django Best Practices&lt;/a&gt; (&lt;a href="https://lincolnloop.com/django-best-practices/"&gt;Django Best Practices&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Payed&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/0981467342/"&gt;Two Scoops of Django: Best Practices for Django 1.8&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Foundations of Python Network Programming:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;free chapter: &lt;a href="http://rhodesmill.org/brandon/chapters/screen-scraping/"&gt;Screen Scraping with BeautifulSoup and lxml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/brandon-rhodes/fopnp"&gt;source code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Pandas&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://rhodesmill.org/brandon/2014/pandas-payroll/"&gt;Learning Pandas …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 30 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-30:/books-for-python-2016.html</guid><category>Python</category><category>python</category><category>books</category><category>ebooks</category></item><item><title>Configuration Nginx Gunicorn Uwsgi Python</title><link>https://blog.furas.pl/configuration-nginx-gunicorn-uwsgi-python.html</link><description>&lt;p&gt;My configuration template&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;listen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;server_name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;www&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;htm&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;access_log&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nginx&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;access&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;error_log&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nginx&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;try_files&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;uri&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;gunicorn&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;# gunicorn server - address with http://&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;gunicorn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;proxy_pass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="mf"&gt;127 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 30 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-30:/configuration-nginx-gunicorn-uwsgi-python.html</guid><category>Python</category><category>python</category></item><item><title>Formatting numbers in Python</title><link>https://blog.furas.pl/formatting%20numbers-in-python.html</link><description>&lt;p&gt;Adding native separator&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;locale&lt;/span&gt;

&lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setlocale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LC_ALL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pl_PL.utf-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1234567890&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grouping&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;monetary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="si"&gt;%f&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;1234567890.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grouping&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;monetary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;{:,d}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1234567890&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;,&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 30 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-30:/formatting numbers-in-python.html</guid><category>Python</category><category>python</category></item><item><title>Security Tools</title><link>https://blog.furas.pl/security-tools.html</link><description>&lt;h1&gt;WEB&lt;/h1&gt;
&lt;h2&gt;scaners&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://detectify.com/"&gt;Detectify&lt;/a&gt; is a SaaS based website security scanner that will help you stay safe. We audit your site’s security so you can focus on web development.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.scanmyserver.com/"&gt;ScanMyServer&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://geekflare.com/online-scan-website-security-vulnerabilities/"&gt;10 Online Free Tools to Scan Website Security Vulnerabilities &amp;amp; Malware&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://sitecheck.sucuri.net/"&gt;Free Website Malware and Security Scanner&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;Kali Linux&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.offensive-security.com/kali-linux/top-10-post-install-tips/"&gt;Kali Linux …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 30 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-30:/security-tools.html</guid><category>Inne</category><category>inne</category><category>security</category></item><item><title>Listy darmowych ebooków na temat Pythona</title><link>https://blog.furas.pl/lista-darmowych-ebookow-na-temat-pythona.html</link><description>&lt;p&gt;W internecie są różne listy darmowych ebooków o Pythonie - oto kilka z nich&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://pythonbooks.revolunet.com/"&gt;http://pythonbooks.revolunet.com/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://pythontips.com/2014/02/04/free-python-books/"&gt;https://pythontips.com/2014/02/04/free-python-books/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lista ebooków dla różnych języków programowania (w tym Python):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#python"&gt;https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 27 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-27:/lista-darmowych-ebookow-na-temat-pythona.html</guid><category>Python</category><category>python</category><category>ebook</category></item><item><title>urlparse przykład</title><link>https://blog.furas.pl/urlparse-przyklad.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urlparse&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://www.example.org/default.html?alpha=32&amp;amp;beta=92&amp;amp;gamma=98&amp;quot;&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;urlparse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlsplit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;SplitResult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scheme&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;netloc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;www.example.org&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/default.html&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ct=32&amp;amp;op=92&amp;amp;item=98&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fragment&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;urlparse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parse_qs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urlparse&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlsplit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;alpha&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;32&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;betta&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;92&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;gamma&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;98&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urlparse …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 22 May 2016 22:50:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-22:/urlparse-przyklad.html</guid><category>Python</category><category>python</category><category>url</category></item><item><title>Python Prompt Toolkit</title><link>https://blog.furas.pl/python-prompt-toolkit.html</link><description>&lt;p&gt;&lt;a href="https://github.com/jonathanslenders/python-prompt-toolkit"&gt;Python Prompt Toolkit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Przykład wykorzystania&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="https://raw.githubusercontent.com/jonathanslenders/python-prompt-toolkit/master/docs/images/ptpython.png" alt="python prompt toolkit przykład"/&gt;
&lt;/div&gt;

&lt;p&gt;Wykorzystywany przez&lt;/p&gt;
&lt;p&gt;link: &lt;a href="https://github.com/jonathanslenders/python-prompt-toolkit"&gt;https://github.com/jonathanslenders/python-prompt-toolkit&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 22 May 2016 22:25:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-22:/python-prompt-toolkit.html</guid><category>Python</category><category>python</category><category>news</category><category>prompt</category><category>cli</category></item><item><title>httpie - narzędzie w stylu cURL</title><link>https://blog.furas.pl/httpie-narzedzie-w-stylu-curl.html</link><description>&lt;p&gt;&lt;a href="https://github.com/jkbrzt/httpie"&gt;HTTPie&lt;/a&gt; - narzędzie w stylu cURL&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="https://raw.githubusercontent.com/jkbrzt/httpie/master/httpie.png" alt="httpie przykład"/&gt;
&lt;/div&gt;

&lt;p&gt;link: &lt;a href="https://github.com/jkbrzt/httpie"&gt;https://github.com/jkbrzt/httpie&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 22 May 2016 22:20:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-22:/httpie-narzedzie-w-stylu-curl.html</guid><category>Python</category><category>python</category><category>news</category><category>http</category></item><item><title>http-prompt - interaktywna linia komend HTTP w Pythonie</title><link>https://blog.furas.pl/http-prompt-interaktywna-linia-komend-http-w-pythonie.html</link><description>&lt;p&gt;&lt;a href="https://github.com/eliangcs/http-prompt"&gt;http-prompt&lt;/a&gt;
 - interaktywny klient HTTP z autouzupełnianiem i kolorowaniem.&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="https://raw.githubusercontent.com/eliangcs/http-prompt/master/http-prompt.gif" alt="http-prompt example"/&gt;
&lt;/div&gt;

&lt;p&gt;link: &lt;a href="https://github.com/eliangcs/http-prompt"&gt;https://github.com/eliangcs/http-prompt&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 22 May 2016 22:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-22:/http-prompt-interaktywna-linia-komend-http-w-pythonie.html</guid><category>Python</category><category>python</category><category>news</category></item><item><title>12 Portali, które uczą programowania za darmo (według Fortune)</title><link>https://blog.furas.pl/12-portali-ktore-ucza-programowania-za-darmo-wedlug-fortune.html</link><description>&lt;p&gt;&lt;a href="http://fortune.com/2015/09/21/free-coding-classes-online/"&gt;12 sites that will teach you coding for free&lt;/a&gt; (Fortune, 21.09.2015)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.codecademy.com/"&gt;CodeAcademy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/courses?query=programming"&gt;Coursera&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.edx.org/"&gt;edX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/"&gt;Udemy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.agupieware.com/p/online-learning.html"&gt;aGupieWare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#professional-development"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ocw.mit.edu/help/finding-courses/"&gt;MIT Open Courseware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hackpledge.org/"&gt;Hack.pledge()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeavengers.com/"&gt;Code Avengers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.khanacademy.org/"&gt;Khana Academy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.freecodecamp.com/"&gt;Free Food Camp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.html5rocks.com/"&gt;HTML5 Rocks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 22 May 2016 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-22:/12-portali-ktore-ucza-programowania-za-darmo-wedlug-fortune.html</guid><category>Python</category><category>kursy</category></item><item><title>Open Browser czyli przeglądarka Web w Pythonie</title><link>https://blog.furas.pl/open-browser-czyli-przegladarka-web-w-pythonie.html</link><description>&lt;p&gt;&lt;a href="https://github.com/EricsonWillians/Open-Browser"&gt;Open-Browser&lt;/a&gt;
 - prosta przeglądarka web napisana w około 170 liniach w Pythonie
dzięki wykorzystaniu biblioteki PyQt.&lt;/p&gt;
&lt;p&gt;link: &lt;a href="https://github.com/EricsonWillians/Open-Browser"&gt;https://github.com/EricsonWillians/Open-Browser&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 21 May 2016 12:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-05-21:/open-browser-czyli-przegladarka-web-w-pythonie.html</guid><category>Python</category><category>python</category><category>news</category></item><item><title>Różne Awesome-ności i nie tylko</title><link>https://blog.furas.pl/rozne-awesome-nosci-i-nie-tylko.html</link><description>&lt;p&gt;Zbiór różnych "Awesome" i nie tylko.&lt;/p&gt;
&lt;h2&gt;Strony na github.com&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/bayandin/awesome-awesomeness"&gt;Awesome Awesomeness (on github.com)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://awesome-awesomeness.zeef.com/alexander.bayandin"&gt;Awesome Awesomeness (on zeef.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/prakhar1989/awesome-courses"&gt;Awesome Courses&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/avelino/awesome-go"&gt;Awesome Go&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ziadoz/awesome-php"&gt;Awesome PHP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/vinta/awesome-python"&gt;Awesome Python&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/Kickball/awesome-selfhosted"&gt;Awesome Selfhosted&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/alebcay/awesome-shell"&gt;Awesome Shell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ligurio/awesome-sysadmin"&gt;Awesome Sysadmin&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://github.com/onurakpolat/awesome-bigdata"&gt;Awesome Big Data&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/okulbilisim/awesome-datascience"&gt;Awesome Data Science&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/josephmisiti/awesome-machine-learning"&gt;Awesome Machine Learning&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Darmowe książki&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/ligurio/free-software-testing-books/blob/master/free-software-testing-books.md"&gt;free-software-testing-books&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ligurio/free-programming-books/blob/master/free-programming-books-pl.md"&gt;free-programming-books (PL) (by ligurio …&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 03 Feb 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-02-03:/rozne-awesome-nosci-i-nie-tylko.html</guid><category>Różne</category><category>rozne</category><category>awesome</category></item><item><title>Tkinter: Frame Manager by Bryan Oakley</title><link>https://blog.furas.pl/tkinter-frame-manager-by-bryan-oakley.html</link><description>&lt;p&gt;Bryan Oakley's program to switch between frames in tkinter: &lt;a href="http://stackoverflow.com/a/7557028/1832058"&gt;http://stackoverflow.com/a/7557028/1832058&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 01 Feb 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-02-01:/tkinter-frame-manager-by-bryan-oakley.html</guid><category>Python</category><category>python</category><category>tkinter</category></item><item><title>Nieoficjalne repozytorium wersji binarnych Pythona dla Ubuntu i Linux Mint</title><link>https://blog.furas.pl/nieoficjalne-repozytorium-wersji-binarnych-python-dla-ubuntu-i-linux-mint.html</link><description>&lt;p&gt;Nieoficjalne repozytorium wersji binarnych Pythona dla Ubuntu i Linux Mint&lt;/p&gt;
&lt;h2&gt;Python 2.7:&lt;/h2&gt;
&lt;p&gt;Python 2.7: &lt;a href="https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes-python2"&gt;deadsnakes-python2.7&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7
sudo apt-get update
sudo apt-get install python2.7
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Python 3.5:&lt;/h2&gt;
&lt;p&gt;( to repozytorium zawiera wersje od 2.3 do 3.5 z pominięciem 2.7 )&lt;/p&gt;
&lt;p&gt;Python …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 30 Jan 2016 06:17:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-01-30:/nieoficjalne-repozytorium-wersji-binarnych-python-dla-ubuntu-i-linux-mint.html</guid><category>Python</category><category>python</category><category>linux</category></item><item><title>Pygame: zdarzenia i funkcje myszy.</title><link>https://blog.furas.pl/pygame-mouse-events-and-functions__PL.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/python/python-pygame-mouse-events-and-functions.png" alt="python pygame zdarzenia i funkcje dotyczące myszy"/&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;p&gt;Źródło: &lt;a href="http://www.pygame.org/docs/ref/mouse.html"&gt;Pygame documentation - mouse&lt;/a&gt; (dokumentacja wraz z komentarzami)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 28 Jan 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-01-28:/pygame-mouse-events-and-functions__PL.html</guid><category>Python</category><category>python</category><category>pygame</category></item><item><title>Pygame: zdarzenia KEYDOWN, KEYUP i funkcje get_pressed(), get_mods().</title><link>https://blog.furas.pl/pygame-zdarzenia-keydown-keyup-i-funkcje-get_pressed-get_mods.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/python/python-pygame-key-events-and-functions.png" alt="python pygame zdarzenia i funkcje dotyczące klawiszy"/&gt;
&lt;/div&gt;

&lt;p&gt;Zdarzenia &lt;code&gt;KEYDOWN&lt;/code&gt;, &lt;code&gt;KEYUP&lt;/code&gt; to pojedyńcze sygnały, które pojawiają się
na początku i na końcu trzymania wciśniętego klawisza.&lt;/p&gt;
&lt;p&gt;Funkcja &lt;code&gt;pygame.key.get_pressed()&lt;/code&gt; dostarcza przez cały czas informację,
że dany klawisz jest trzymany wciśnięty. Wykorzystuje do tego tablicę
z wartościami True/False. Ta funkcja wymaga wywoływania (w pętli) funkcji &lt;code&gt;pygame.event.get …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 28 Jan 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-01-28:/pygame-zdarzenia-keydown-keyup-i-funkcje-get_pressed-get_mods.html</guid><category>Python</category><category>python</category><category>pygame</category></item><item><title>Python Unicode - decode &amp; encode</title><link>https://blog.furas.pl/python-unicode-decode-encode.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;TO&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="k"&gt;read&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;write&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;input&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;---&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="n"&gt;ecode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;---&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nf"&gt;UNICODE&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;---&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="n"&gt;ncode&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;---&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nf"&gt;ascii&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;ascii&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;utf&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;utf&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;iso&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;8859&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iso&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;8859&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="n"&gt;latin2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;latin2&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;windows&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1250&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;windows&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1250&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="n"&gt;cp1250&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp1250&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;cp852&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cp852&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;--------------+&lt;/span&gt;&lt;span class="w"&gt;                                                 &lt;/span&gt;&lt;span class="o"&gt;+--------------&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;

&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;Można&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;zapamiętać&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dzięki&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;kolejności&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;alfabetycznej&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="n"&gt;ecode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="n"&gt;ncode&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="center"&gt;
&lt;img src="/images/python/python-unicode-decode-encode.png" alt="python unicode decode &amp; encode"/&gt;
&lt;/div&gt;

&lt;hr&gt;
&lt;p&gt;Zamiana tekstu na prawdziwy Unicode, który …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 20 Jan 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-01-20:/python-unicode-decode-encode.html</guid><category>Python</category><category>python</category></item><item><title>Zasada działania FuncAnimation w matplotlib</title><link>https://blog.furas.pl/zasada-dzialania-funcanimation-w-matplotlib.html</link><description>&lt;p&gt;&lt;code&gt;FuncAnimation&lt;/code&gt; przyjmuje jako parametr funkcję np. &lt;code&gt;update_data(liczba)&lt;/code&gt;
i wykonuje następujące rzeczy:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;FuncAnimation&lt;/code&gt; wywołuje funkcje &lt;code&gt;init()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;numer = 0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FuncAnimation&lt;/code&gt; wywołuje funkcje &lt;code&gt;update_data(numer)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update_data()&lt;/code&gt; modyfikuje dane na wykresie   &lt;/li&gt;
&lt;li&gt;??? &lt;code&gt;FuncAnimation&lt;/code&gt; czysci wykres (gdy &lt;code&gt;blit=True&lt;/code&gt;) ???&lt;/li&gt;
&lt;li&gt;??? &lt;code&gt;FuncAnimation&lt;/code&gt; rysuje nowy wykres (gdy &lt;code&gt;blit=True&lt;/code&gt;) ???&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FuncAnimation&lt;/code&gt; robi przerwę&lt;/li&gt;
&lt;li&gt;&lt;code&gt;numer = numer + 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;jeśli &lt;code&gt;numer &amp;lt; max_numer …&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 08 Jan 2016 13:16:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-01-08:/zasada-dzialania-funcanimation-w-matplotlib.html</guid><category>Python</category><category>python</category><category>matplotlib</category></item><item><title>Najprostszy program w PyGame</title><link>https://blog.furas.pl/najprostszy-program-w-pygame.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# import potrzebnego modulu (i podmodulow)&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pygame&lt;/span&gt;

&lt;span class="c1"&gt;# inicjalizacja modulu (i podmodulow)&lt;/span&gt;
&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# stworzenie okna o powierzchni do rysowania 800x600&lt;/span&gt;
&lt;span class="n"&gt;screen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_mode&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# uruchomienie glownej petli (mainloop) do obslugi zdarzen&lt;/span&gt;
&lt;span class="n"&gt;running&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;running&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="c1"&gt;# pobieranie kolejnych zdarzen&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;

        &lt;span class="c1"&gt;# jesli kliknieto w przycisk …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 06 Jan 2016 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2016-01-06:/najprostszy-program-w-pygame.html</guid><category>Python</category><category>python</category><category>pygame</category></item><item><title>Python materiały - książki, video, szkolenia, wyzwania</title><link>https://blog.furas.pl/python-materialy-ksiazki-video-szkolenia-wyzwania-2015.html</link><description>&lt;h2&gt;Książki&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://python.edu.pl/"&gt;Ukąś Pythona&lt;/a&gt;, tłumaczenie podręcznika Byte of Python  &lt;/li&gt;
&lt;li&gt;&lt;a href="https://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie"&gt;Zanurkuj w Pythonie&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://haar.zfb.fuw.edu.pl/edu/index.php/%22Programowanie_z_Pythonem%22"&gt;Programowanie z Pythonem&lt;/a&gt; na podstawie Byte of Python&lt;/li&gt;
&lt;li&gt;Hard Way&lt;/li&gt;
&lt;li&gt;&lt;a href="https://automatetheboringstuff.com/"&gt;Automate Boring Stuff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://inventwithpython.com/chapters/"&gt;Invent Your Own Computer Games with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://inventwithpython.com/pygame/chapters/"&gt;Making Games with Python &amp;amp; Pygame&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://docs.python-guide.org/en/latest/"&gt;The Hitchhiker’s Guide to Python!&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://book.pythontips.com/en/latest/"&gt;Intermedia Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Książki inne&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://inventwithpython.com/index.html"&gt;http://inventwithpython.com/index …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 28 Oct 2015 18:03:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-10-28:/python-materialy-ksiazki-video-szkolenia-wyzwania-2015.html</guid><category>Python</category><category>python</category></item><item><title>Python i polskie znaki pod Windows</title><link>https://blog.furas.pl/python-i-polskie-znaki-pod-windows.html</link><description>&lt;p&gt;// &lt;strong&gt;&lt;em&gt;Sprawdzane w Windows 7&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;W czasach DOS'u gdy nie było jeszcze Windows a wszystko działo się w trybie tekstowym
(tak jak to się dzieje obecnie w konsoli) stosowano różne kodowania polskich liter.
Jednym z nich było kodowanie wprowadzone przez Microsoft o nazwie 'CP852',
(CP = Code Page = Strona Kodowa)
Dlatego też …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 26 Oct 2015 01:06:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-10-26:/python-i-polskie-znaki-pod-windows.html</guid><category>Python</category><category>python</category></item><item><title>PyCharm Edu 2.0.2 i plugin CheckIO</title><link>https://blog.furas.pl/pycharm-edu-i-plugin-checkio.html</link><description>&lt;p&gt;Wydano nową wersję darmowego PyCharm Edu 2.0.2 - środowiska do pracy
z Pythonem z dodatkami do nauki tego języka.&lt;/p&gt;
&lt;p&gt;Jednym z ważniejszych elementów jakie dodano jest plugin do współpracy z portalem &lt;a href="http://www.checkio.org"&gt;CheckIO.org&lt;/a&gt;,
na którym znajdują się zadania z Pythona.&lt;/p&gt;
&lt;p&gt;Teraz będzie można rozwiązywać zadania bezpośrednio z poziomu PyCharma …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 24 Oct 2015 19:30:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-10-24:/pycharm-edu-i-plugin-checkio.html</guid><category>Python</category><category>python</category><category>news</category></item><item><title>Python Pentesting</title><link>https://blog.furas.pl/python-pentesting-2015.html</link><description>&lt;p&gt;Python tools for penetration testers
https://github.com/dloss/python-pentest-tools&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Scripting Wi-Fi Pentesting Tools in Python
(dziesięć darmowych Video z płatnego kursy)
http://www.pentesteracademy.com/course?id=14&lt;/p&gt;
&lt;p&gt;Python for Pentesters
http://www.pentesteracademy.com/course?id=1&lt;/p&gt;
&lt;p&gt;http://www.pentesteracademy.com/pricing&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;SEC573: Python for Penetration Testers&lt;/p&gt;
&lt;p&gt;https …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 20 Oct 2015 15:01:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-10-20:/python-pentesting-2015.html</guid><category>Python</category><category>python</category></item><item><title>Uruchamianie windowsowej gry firmy Artifex Mundi pod Linux 64bit</title><link>https://blog.furas.pl/uruchamianie-windowsowej-gry-firmy-artifexmundi-pod-linux-64bit.html</link><description>&lt;p&gt;Dawno temu zapisałem się na Beta Testera gier polskiej firmy ArtifexMundi. &lt;br&gt;
Co jakiś czas dostaję więc możliwość pogrania w demo gry.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.artifexmundi.com/page/signup_betatest/"&gt;Artifex Mundi Beta Tester&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gry tworzone są pod Windows ale udaje się je uruchomić pod Linux Mint 17 (64-bit)
wykorzystują emulator WINE.&lt;/p&gt;
&lt;p&gt;Pod 64-bitowym Linux emulator WINE domyślnie jest …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 25 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-25:/uruchamianie-windowsowej-gry-firmy-artifexmundi-pod-linux-64bit.html</guid><category>Linux</category><category>linux</category><category>wine</category><category>gry</category><category>32bit</category></item><item><title>Rysowanie danych na mapie w Pythonie</title><link>https://blog.furas.pl/rysowanie-danych-na-mapie-w-Pythonie.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="c1"&gt;# rozwiazanie na problem ze znalezieniem modulu `basemap` na moim komputerze&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;mpl_toolkits&lt;/span&gt;
&lt;span class="n"&gt;mpl_toolkits&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;__path__&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/usr/lib/pymodules/python2.7/mpl_toolkits&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# na podstawie: BaseMap example by geophysique.be - tutorial 01&lt;/span&gt;
&lt;span class="c1"&gt;# adres:  http://www.geophysique.be/tutorials&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;mpl_toolkits.basemap&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Basemap&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 10 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-10:/rysowanie-danych-na-mapie-w-Pythonie.html</guid><category>Python</category><category>python</category><category>pyplot</category><category>map</category></item><item><title>Zegar czyli odliczanie czasu w Pyglet</title><link>https://blog.furas.pl/zegar-czyli-odliczanie-czasu-w-pyglet.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pyglet&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;

&lt;span class="c1"&gt;# stworzenie okna&lt;/span&gt;
&lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyglet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Window&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;caption&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Pyglet Clock&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# stworzenie napisu, które będzie rysowany na środku okna &lt;/span&gt;
&lt;span class="c1"&gt;# dzięki anchor_x, anchor_y, window.width/2, window.height/2 &lt;/span&gt;
&lt;span class="n"&gt;current_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pyglet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;--:--:--&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                          &lt;span class="n"&gt;font_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Times New Roman&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                          &lt;span class="n"&gt;font_size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="n"&gt;anchor_x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;center …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 09 Aug 2015 02:17:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-09:/zegar-czyli-odliczanie-czasu-w-pyglet.html</guid><category>Python</category><category>python</category><category>pyglet</category></item><item><title>Python programming w Google Trends</title><link>https://blog.furas.pl/python-programming-w-google-trends.html</link><description>&lt;p&gt;Wynik w Google Trends dla zapytania o&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.google.com/trends/explore#q=ruby programming%2C python programming%2C php programming%2C perl programming"&gt;ruby programming, python programming, php programming, perl programming&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="center"&gt;
&lt;img src="/images/python/python-programming-w-google-trends.png" alt="python programming w Google Trends" style="margin: 25px 0"/&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 09 Aug 2015 01:27:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-09:/python-programming-w-google-trends.html</guid><category>Python</category><category>python</category></item><item><title>Ściąga z komend Unix'a</title><link>https://blog.furas.pl/sciaga-z-komend-unixa.html</link><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://cb.vu/unixtoolbox.xhtml"&gt;Unix Toolbox&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bhami.com/rosetta.html"&gt;Rosseta Stone for Unix&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 08 Aug 2015 23:55:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-08:/sciaga-z-komend-unixa.html</guid><category>Linux</category><category>linux</category><category>unix</category><category>bash</category></item><item><title>Python na Facebook</title><link>https://blog.furas.pl/python-na-facebook.html</link><description>&lt;h2&gt;Polskojęzyczne&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/groups/pythonpl"&gt;Python Poland&lt;/a&gt; - Grupa otwarta&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/groups/pythonpierwszekroki"&gt;Python: Pierwsze kroki&lt;/a&gt; - Grupa otwarta&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/groups/pythonjobs"&gt;Python: Jobs&lt;/a&gt; - Grupa zamknięta&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/WroclawPythonUserGroup"&gt;wroc.py - Wrocław's Pythonic clique&lt;/a&gt; - Społeczność&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/pycircle"&gt;PyCircle&lt;/a&gt; - Organizacja non-profit&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/stowarzyszenie.plpug"&gt;Stowarzyszenie Polska Grupa Użytkowników Pythona&lt;/a&gt; - Organizacja społeczna · Organizacja edukacyjna&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/python.na.maturze"&gt;Python na maturze&lt;/a&gt; - Społeczność&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Inne&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/pages/Python/1493683780904488"&gt;Python&lt;/a&gt; - Osoba publiczna&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/europython"&gt;EuroPython&lt;/a&gt; - Organizacja non-profit&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/freepythontips"&gt;Python Tips&lt;/a&gt; - Organizacja społeczna&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.facebook.com/pages/Python-tricks-and-tutorials/1424345014462852"&gt;Python tricks and …&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 08 Aug 2015 23:23:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-08:/python-na-facebook.html</guid><category>Python</category><category>python</category></item><item><title>Rysowanie planu mieszkania za pomocą PIL/Pillow w Pythonie</title><link>https://blog.furas.pl/rysowanie-planu-mieszkania-za-pomoca-pillow-w-pythonie.html</link><description>&lt;p&gt;Rysowanie planu mieszkania z pomocą Pillow.&lt;/p&gt;
&lt;p&gt;Przykład planu mieszkania w postaci współrzędnych początku i końca ściany.&lt;/p&gt;
&lt;p&gt;Dla uwidocznienia ścian każda jest rysowana innym kolorem.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ImageDraw&lt;/span&gt;

&lt;span class="c1"&gt;# współrzędne ścian (poczatek_x, poczatek_y, koniec_x, koniec_y)&lt;/span&gt;
&lt;span class="n"&gt;mieszkanie&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="c1"&gt;# kuchnia&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 06 Aug 2015 18:30:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-06:/rysowanie-planu-mieszkania-za-pomoca-pillow-w-pythonie.html</guid><category>Python</category><category>python</category><category>pil</category><category>pillow</category></item><item><title>Rysowanie planu mieszkania za pomocą turtle w Pythonie</title><link>https://blog.furas.pl/rysowanie-planu-mieszkania-za-pomoca-turtle-w-pythonie.html</link><description>&lt;p&gt;Rysowanie planu mieszkania z pomocą żółwika.&lt;/p&gt;
&lt;p&gt;Przykład planu mieszkania w postaci współrzędnych początku i końca ściany.&lt;/p&gt;
&lt;p&gt;Dla uwidocznienia ścian każda jest rysowana innym kolorem.&lt;/p&gt;
&lt;div class="center"&gt;
&lt;img src="/images/python/python-turtle-rysowanie-planu-mieszkania.png" alt="python turtle - żółwik rysuje plan mieszkania"/&gt;
&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="c1"&gt;# współrzędne ścian (poczatek_x, poczatek_y, koniec_x, koniec_y)&lt;/span&gt;

&lt;span class="n"&gt;mieszkanie&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="c1"&gt;# kuchnia&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;

    &lt;span class="c1"&gt;# kuchnia - drzwi do korytarza …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 06 Aug 2015 18:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-06:/rysowanie-planu-mieszkania-za-pomoca-turtle-w-pythonie.html</guid><category>Python</category><category>python</category><category>turtle</category></item><item><title>Rysowanie kolorowego okręgu z turtle w Pythonie</title><link>https://blog.furas.pl/rysowanie-kolorowego-okregu-z-turtle-w-pythonie.html</link><description>&lt;p&gt;Oto rysowanie okręgu za pomocą wycinków o różnych kolorach.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;circle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;promień&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wielkość_wycinka_w_stopniach&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="center"&gt;
&lt;img src="/images/python/python-turtle-kolorowy-okrag-1.png" alt="python turtle - żółwik rysuje kolorowy okrąg"/&gt;
&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="c1"&gt;# kolory kolejnych wycinków okręgu&lt;/span&gt;

&lt;span class="n"&gt;colors&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;#880000&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;#884400&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;#888800&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;#008800&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;#008888&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;#000088&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;#440088&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;#880088&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# wyliczenie jaki wycinek okręgu (w stopniach) będzie zajmował każdy kolor.&lt;/span&gt;
&lt;span class="c1"&gt;# (okrąg ma 360 stopni a ilość kolorów jest `len(colors)`)&lt;/span&gt;

&lt;span class="n"&gt;angle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;360 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 06 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-06:/rysowanie-kolorowego-okregu-z-turtle-w-pythonie.html</guid><category>Python</category><category>python</category><category>turtle</category></item><item><title>Sortowanie polskich tekstów w Pythonie</title><link>https://blog.furas.pl/sortowanie-polskich-tekstow-w-pythonie.html</link><description>&lt;p&gt;Wykorzystanie modułu &lt;code&gt;locale&lt;/code&gt; do sortowania wyrazów zgodnie z polskim alfabetem.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;locale&lt;/span&gt;

&lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setlocale&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;LC_COLLATE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;pl_PL.UTF-8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Ala ala zen Ąęś coś bąk ćma bar COS&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;locale&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strxfrm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Wynik:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ala Ala Ąęś bar bąk COS …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 05 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-05:/sortowanie-polskich-tekstow-w-pythonie.html</guid><category>Python</category><category>python</category></item><item><title>Wyszukiwanie w Linux pakietu zawierającego brakujący plik dla Pythona</title><link>https://blog.furas.pl/wyszukiwanie-w-linux-pakietu-zawierajacego-brakujacy-plik.html</link><description>&lt;p&gt;Program &lt;code&gt;apt-file&lt;/code&gt; pozwala wyszukać pakiet, który zawiera brakujący plik.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Instalacja&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ sudo apt-get install apt-file
$ sudo apt-file update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr&gt;
&lt;p&gt;Wyszukiwanie pliku &lt;code&gt;X11/extensions/XTest.h&lt;/code&gt; wymaganego przez moduł pythona &lt;code&gt;autopy&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ sudo apt-file search &lt;span class="s2"&gt;&amp;quot;X11/extensions/XTest.h&amp;quot;&lt;/span&gt;

libxtst-dev: /usr/include/X11/extensions/XTest.h
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr&gt;
&lt;p&gt;Wyszukiwanie z użyciem regex pliku kończącego się na …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 05 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-05:/wyszukiwanie-w-linux-pakietu-zawierajacego-brakujacy-plik.html</guid><category>Linux</category><category>linux</category><category>python</category></item><item><title>Moduł Pythona: datetime</title><link>https://blog.furas.pl/datetime.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;

&lt;span class="n"&gt;dayname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Poniedzialek&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# 0&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Wtorek&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Sroda&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Czwartek&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Piatek&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Sobota&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;Niedziela&amp;#39;&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;how_many&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Podaj liczbę dni: &amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;today&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;today&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;future&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;today&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;days&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;how_many&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;daynumer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;weekday&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;future&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;future&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%Y.%m.&lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dayname&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;daynumer&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;locale&lt;/span&gt;

&lt;span class="c1"&gt;# ustawienie locale zgodnie z …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 04 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-04:/datetime.html</guid><category>Wersje Robocze</category><category>python</category></item><item><title>How to draw triangel, rectangle or polygon with border and filling color using PIL/Pillow in Python</title><link>https://blog.furas.pl/python-pillow-how-to-draw-triangle-rectangle-or-polygon-with-border-and-filling-color-using-pil-pillow-in-python.html</link><description>&lt;p&gt;It is example how to use module &lt;code&gt;PIL&lt;/code&gt; or &lt;code&gt;Pillow&lt;/code&gt; to draw polygon with border and/or with filling color.&lt;/p&gt;
&lt;h3&gt;Example 1&lt;/h3&gt;
&lt;p&gt;This code creates triangle in the corners of empty image.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ImageDraw&lt;/span&gt;

&lt;span class="c1"&gt;# create empty image&lt;/span&gt;
&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;RGB&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# create object which let …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 04 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-04:/python-pillow-how-to-draw-triangle-rectangle-or-polygon-with-border-and-filling-color-using-pil-pillow-in-python.html</guid><category>Python/Pillow</category><category>python</category><category>pil</category><category>pillow</category></item><item><title>Rysowanie wieloboku z obwódką wypełnionego kolorem z użyciem PIL/Pillow w Pythonie</title><link>https://blog.furas.pl/rysowanie-wieloboku-z-obwodka-wypelnionego-kolorem-z-uzyciem-pil-pillow-w-pythonie.html</link><description>&lt;p&gt;Przykład jak moduł &lt;code&gt;PIL&lt;/code&gt; oraz &lt;code&gt;Pillow&lt;/code&gt; pozwala na rysowanie wieloboku z obwódką i/lib wypełnionego kolorem.&lt;/p&gt;
&lt;h3&gt;Przykład 1&lt;/h3&gt;
&lt;p&gt;Poniższy kod tworzy trójkąty w narożnikach pustego obrazka&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ImageDraw&lt;/span&gt;

&lt;span class="c1"&gt;# stworzenie pustego obrazka&lt;/span&gt;
&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;RGB&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# obiekt pozwalający rysować na …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 04 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-04:/rysowanie-wieloboku-z-obwodka-wypelnionego-kolorem-z-uzyciem-pil-pillow-w-pythonie.html</guid><category>Python/Pillow</category><category>python</category><category>pil</category><category>pillow</category></item><item><title>Najprostszy program w Pyglet</title><link>https://blog.furas.pl/najprostszy-program-w-pyglet.html</link><description>&lt;p&gt;Poniżej najprostszy przykład programu w &lt;code&gt;Pyglet&lt;/code&gt; pod Python 2.7 i 3.x.
Program oprócz wyświetlenia okienka nic nie robi ale to jest minimum jakie potrzeba do uruchomienia programu.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pyglet&lt;/span&gt;

&lt;span class="n"&gt;pyglet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Window&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;pyglet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;!--more--&gt;

&lt;p&gt;Najpierw importujemy moduł &lt;code&gt;pyglet&lt;/code&gt;.
Potem tworzymy główne okno &lt;code&gt;Window()&lt;/code&gt;, które pojawia się od …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 02 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-02:/najprostszy-program-w-pyglet.html</guid><category>Python</category><category>python</category><category>pyglet</category><category>gui</category><category>game</category></item><item><title>Pobieranie plików i zdjęć za pomocą requests</title><link>https://blog.furas.pl/pobieranie-plikow-i-zdjec-za-pomoca-requests.html</link><description>&lt;blockquote&gt;
&lt;p&gt;Uwaga: w przykładach wykorzystuje portal httpbin.org, który pozwala na testowanie przesyłania danych między serwerem i klientem.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dla małych plików i zdjęć, które spokojnie zmieszczą się w pamięci
wystarczyć pobranie i zapisanie pliku w całości.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;http://httpbin.org/image/png&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;with …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 02 Aug 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-08-02:/pobieranie-plikow-i-zdjec-za-pomoca-requests.html</guid><category>Python</category><category>python</category><category>requests</category></item><item><title>Przestrzeń wolna (free) a dostępna (available) na dysku pod Linux</title><link>https://blog.furas.pl/przestrzen-wolna-free-a-dostepna-avaliable-na-dysku-pod-linux.html</link><description>&lt;p&gt;Systemy plików &lt;code&gt;ext2&lt;/code&gt;, &lt;code&gt;ext3&lt;/code&gt; i &lt;code&gt;ext4&lt;/code&gt; domyślnie rezerwują na dysku około 5% przestrzeni na potrzeby &lt;code&gt;root&lt;/code&gt; aby zawsze miał wolne miejsca potrzebne na zalogowanie się i wykonanie awaryjnych działań.
Sprawia to, że na partycji może być wolne (free) kilka gigabajtów ale dla użytkownika będzie dostępne (available) zaledwie kilka megabajtów.&lt;/p&gt;
&lt;p&gt;Przykładowo …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 24 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-24:/przestrzen-wolna-free-a-dostepna-avaliable-na-dysku-pod-linux.html</guid><category>Linux</category><category>linux</category></item><item><title>Interaktywne zadania w Pythonie z rozmów kwalifikacyjnych.</title><link>https://blog.furas.pl/interaktywne-zadania-w-pythonie-z-rozmow-kwalifikacyjnych.html</link><description>&lt;p&gt;Zbiór zadań w Pythonie oraz rozwiązań dotyczących algorytmów i struktur danych,
które podobno zwykle pojawiają się na rozmowach kwalifikacyjnych.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/donnemartin/interactive-coding-challenges"&gt;interactive-coding-challenges&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Całość w postaci interaktywnych IPython/Jupyter Notebooks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 13 Jul 2015 20:35:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-13:/interaktywne-zadania-w-pythonie-z-rozmow-kwalifikacyjnych.html</guid><category>Python</category><category>python</category></item><item><title>PyFormat.info czyli przykłady formatownaie tekstu w Pythonie</title><link>https://blog.furas.pl/pyformat-info-czyli-przyk%C5%82ady-formatowania-tekstu-w-pythonie.html</link><description>&lt;p&gt;Przykłady formatowania tekstu za pomocą &lt;code&gt;%&lt;/code&gt; oraz &lt;code&gt;format()&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://pyformat.info/"&gt;PyFormat.info&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 13 Jul 2015 18:05:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-13:/pyformat-info-czyli-przykłady-formatowania-tekstu-w-pythonie.html</guid><category>Python</category><category>python</category></item><item><title>Linki na temat Pythona na zeef.com</title><link>https://blog.furas.pl/linki-na-temat-pythona-na-zeef-com.html</link><description>&lt;p&gt;Pokaźny zbiór linków na temat Pythona na portalu &lt;a href="http://zeef.com"&gt;Zeef.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://python.zeef.com/alan.richmond"&gt;Python by Alan Richmond&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Na portalu są też inne zbiory ale nie tak liczne&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://zeef.com/?query=python&amp;amp;in=all"&gt;Szukaj "Python" na Zeef.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 13 Jul 2015 17:42:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-13:/linki-na-temat-pythona-na-zeef-com.html</guid><category>Python</category><category>python</category><category>gui</category><category>tkinter</category><category>pygame</category></item><item><title>Najprostszy obiektowy program w Tkinter</title><link>https://blog.furas.pl/najprostszy-obiektowy-program-w-tkinter.html</link><description>&lt;p&gt;We wpisie &lt;a href="/najprostszy-program-w-tkinter.html"&gt;Najprostszy program w Tkinter&lt;/a&gt; pokazałem najprostszy program w wersji funkcyjnej a teraz ten sam w postaci obiektowej.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Kod zawiera:
    * import modułu &lt;code&gt;Tkinter&lt;/code&gt; i nadanie mu aliasu &lt;code&gt;tk&lt;/code&gt; aby było mniej pisania ale żeby …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 13 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-13:/najprostszy-obiektowy-program-w-tkinter.html</guid><category>Python</category><category>python</category><category>tkinter</category><category>gui</category></item><item><title>Rysowanie kwiatka z użyciem żółwika w Pythonie</title><link>https://blog.furas.pl/rysowanie-kwiatka-z-uzyciem-zolwika-w-pythonie.html</link><description>&lt;div class="center"&gt;
&lt;img src="/images/python/python-turtle-1.png" alt="python turtle - żółwik rysuje kwiatek"/&gt;
&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# odległość w pikselach&lt;/span&gt;
    &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;110&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;    &lt;span class="c1"&gt;# kąt w stopniach&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Można to zamienić na funkcję&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;turtle&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;kwiatek&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# odległość w pikselach&lt;/span&gt;
        &lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;110&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;    &lt;span class="c1"&gt;# kąt w stopniach&lt;/span&gt;

&lt;span class="n"&gt;kwiatek&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;turtle&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 13 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-13:/rysowanie-kwiatka-z-uzyciem-zolwika-w-pythonie.html</guid><category>Python</category><category>python</category><category>turtle</category></item><item><title>Tworzenie widgetu w Tkinter</title><link>https://blog.furas.pl/tworzenie-widgetu-w-tkinter.html</link><description>&lt;p&gt;Przykład wykorzystania dziedziczenia z &lt;code&gt;Frame&lt;/code&gt; do stworzenia widgetu. &lt;br&gt;
Poniżej własny widget, który składa pola do wprowadzania tekstu &lt;code&gt;Entry&lt;/code&gt; oraz pola &lt;code&gt;Label&lt;/code&gt; w którym na bieżąco pokazywany jest tekst wpisany w &lt;code&gt;Entry&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Potem ten widget jest wykorzystany wielokrotnie w głównym oknie i widać, że pojawia się wielokrotnie para &lt;code&gt;Label&lt;/code&gt; i &lt;code&gt;Entry …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 13 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-13:/tworzenie-widgetu-w-tkinter.html</guid><category>Python</category><category>python</category><category>tkinter</category><category>gui</category></item><item><title>Książki o Pythonie po polsku (2015).</title><link>https://blog.furas.pl/ksiazki-o-pythonie-po-polsku-2015.html</link><description>&lt;h2&gt;Całkiem Początkujący&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://bit.ly/1F0XYGf"&gt;Python dla każdego. Podstawy programowania.&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Nie całkiem początkujący&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://bit.ly/1Fy9DLO"&gt;Python. Wprowadzenie. Wydanie IV.&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Wyższy stopień&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://bit.ly/1NKTJ35"&gt;Python. Receptury. Wydanie III.&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Inne&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://bit.ly/1BmwJo2"&gt;Python. Projekty do wykorzystania.&lt;/a&gt;
&lt;a href="http://bit.ly/1P3VyXy"&gt;Python. Programuj szybko i wydajnie.&lt;/a&gt;
&lt;a href="http://bit.ly/1NEjIaw"&gt;Python. Leksykon kieszonkowy. Wydanie V.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="okladka" href="http://bit.ly/1F0XYGf"&gt;&lt;img alt="python-dla-kazdego-podstawy-programowania" src="/images/python/okladki/python-dla-kazdego-podstawy-programowania.jpg"&gt;&lt;/a&gt;
&lt;a class="okladka" href="http://bit.ly/1Fy9DLO"&gt;&lt;img alt="python-wprowadzenie" src="/images/python/okladki/python-wprowadzenie.jpg"&gt;&lt;/a&gt;
&lt;a class="okladka" href="http://bit.ly/1NEjIaw"&gt;&lt;img alt="python-leksykon-kieszonkowy" src="/images/python/okladki/python-leksykon-kieszonkowy.jpg"&gt;&lt;/a&gt;
&lt;a class="okladka" href="http://bit.ly/1NKTJ35"&gt;&lt;img alt="python-receptury" src="/images/python/okladki/python-receptury.jpg"&gt;&lt;/a&gt;
&lt;a class="okladka" href="http://bit.ly/1P3VyXy"&gt;&lt;img alt="python-programuj-szybko-i-wydajnie" src="/images/python/okladki/python-programuj-szybko-i-wydajnie.jpg"&gt;&lt;/a&gt;
&lt;a class="okladka" href="http://bit.ly/1BmwJo2"&gt;&lt;img alt="python-projekty-do-wykorzystania" src="/images/python/okladki/python-projekty-do-wykorzystania.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img alt="python-rozmowki" src="/images/python/okladki/python-rozmowki.jpg"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;"Python. Wprowadzenie" to można powiedzieć jest 1200 stron teorii.
Masz tam omówione wszystkie podstawy na …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 12 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-12:/ksiazki-o-pythonie-po-polsku-2015.html</guid><category>Wersje Robocze</category><category>python</category><category>ebook</category><category>ksiazki</category></item><item><title>Najprostszy program w Tkinter</title><link>https://blog.furas.pl/najprostszy-program-w-tkinter.html</link><description>&lt;p&gt;Poniżej najprostszy przykład programu w &lt;code&gt;Tkinter&lt;/code&gt; pod Python 2.7 i 3.x. Dla wersji 3.x wystarczy zamienić nazwę modułu z &lt;code&gt;Tkinter&lt;/code&gt; na &lt;code&gt;tkinter&lt;/code&gt; (z małej litery). &lt;br&gt;
Program oprócz wyświetlenia okienka nic nie robi ale to jest minimum jakie potrzeba do uruchomienia programu.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;Tkinter&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;

&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ponieważ …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 12 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-12:/najprostszy-program-w-tkinter.html</guid><category>Python</category><category>python</category><category>tkinter</category><category>gui</category></item><item><title>Nauka Pythona - kursy, zadania, gry</title><link>https://blog.furas.pl/nauka-pythona-kursy-zadania-gry.html</link><description>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.edx.org/"&gt;edx.org&lt;/a&gt; - &lt;a href="https://www.edx.org/course?search_query=python"&gt;python&lt;/a&gt; 
np. &lt;a href="https://www.edx.org/course/cs-all-introduction-computer-science-harveymuddx-cs005x"&gt;CS For All: Introduction to Computer Science and Python Programming&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.udacity.com/"&gt;udacity.com&lt;/a&gt; - &lt;a href="https://www.udacity.com/courses/all?technology=python"&gt;python&lt;/a&gt; 
np. &lt;a href="url=https://www.udacity.com/course/intro-to-data-science--ud359]Intro to Data Science"&gt;Intro to Data Science - Project Investigate New York Subway Data - Intermediate&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.udemy.com/"&gt;udemy.com&lt;/a&gt; - &lt;a href="https://www.udemy.com/courses/search/?ref=home&amp;amp;q=python"&gt;python&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://www.codeschool.com/"&gt;codeschool.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.checkio.org/"&gt;checkio.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codeeval.com/"&gt;codeeval.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codewars.com/"&gt;codewars.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://codecombat.com/"&gt;codecombat.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 12 Jul 2015 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-07-12:/nauka-pythona-kursy-zadania-gry.html</guid><category>Python</category><category>python</category><category>kursy</category></item><item><title>Przykład użycia `after` w Tkinter do wyświetlania aktualnego czasu</title><link>https://blog.furas.pl/przyklad-uzycia-after-w-tkinter-do-wyswietlania-aktualnego-czasu.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt; &lt;span class="c1"&gt;# Python 2.x&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;tk&lt;/span&gt; &lt;span class="c1"&gt;# Python 3.x&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;update_time&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;lbl&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Aktualny czas: %H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;master&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;after&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;update_time&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;master&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;lbl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;master&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Aktualny czas: 00 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 17 Jun 2015 16:36:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-06-17:/przyklad-uzycia-after-w-tkinter-do-wyswietlania-aktualnego-czasu.html</guid><category>Python</category><category>python</category><category>tkinter</category><category>gui</category></item><item><title>Komendy shella w Pythonie</title><link>https://blog.furas.pl/komendy-shella-w-pythonie.html</link><description>&lt;div class="warning center"&gt;WERSJA ROBOCZA&lt;/div&gt;

&lt;h2&gt;os.system()&lt;/h2&gt;
&lt;p&gt;Funkcja jest zawarta w standardowym module Pythona więc nie trzeba nic doinstalowywać.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;

&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ls&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ls -l&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;W łatwy sposób można uruchomić zewnętrzny program ale nie sposób przechwycić wyświetlanych wyników aby je obrobić w Pythonie. 
Można jedynie przekierować do pliku, który następnie …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 19 Feb 2015 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-02-19:/komendy-shella-w-pythonie.html</guid><category>Wersje Robocze</category><category>python</category><category>shell</category><category>wersja robocza</category></item><item><title>RYM - Tłusty Czwartek - 2015</title><link>https://blog.furas.pl/rym-tlusty-czwartek-2015.html</link><description>&lt;p&gt;Kilka rymów powstałych podczas dyskusji
z Ewą i Justyną na Facebook&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Powiedział Bartek, że dziś tłusty czwartek,  &lt;br&gt;
a Ewa uwierzyła tłustych pączków nasmażyła.    &lt;/p&gt;
&lt;p&gt;A Justyna podsłuchała  &lt;br&gt;
i też na tym skorzystała,  &lt;br&gt;
pączka Ewy skosztowała:)    &lt;/p&gt;
&lt;p&gt;Słonko świeci, ptaszek śpiewa,  &lt;br&gt;
że nas dzisiaj chwali Ewa.  &lt;br&gt;
A my Ewę pochwalimy  &lt;br&gt;
gdy po pączki …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 12 Feb 2015 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2015-02-12:/rym-tlusty-czwartek-2015.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>Darmowy ebook Pythona: Think Python - How to Think Like a Computer Scientist</title><link>https://blog.furas.pl/darmowy-ebook-pythona-think-python-how-to-think-like-a-computer-scientist.html</link><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.greenteapress.com/thinkpython/thinkpython.html" title="Think Python: How to Think Like a Computer Scientist"&gt;Think Python: How to Think Like a Computer
Scientist&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 17 Sep 2014 18:18:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-09-17:/darmowy-ebook-pythona-think-python-how-to-think-like-a-computer-scientist.html</guid><category>Python</category><category>python</category><category>ebook</category><category>darmowe</category></item><item><title>Darmowe kursy Pythona: Coursera</title><link>https://blog.furas.pl/darmowe-kursy-pythona-coursera.html</link><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/course/interactivepython" title="An Introduction to Interactive Programming in Python"&gt;An Introduction to Interactive Programming in
Python&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/course/programming1" title="Learn to Program: The Fundamentals"&gt;Learn to Program: The
Fundamentals&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/course/pythonlearn" title="Programming for Everybody (Python)"&gt;Programming for Everybody
(Python)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/course/neuraldata" title="Exploring Neural Data"&gt;Exploring Neural
Data&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/course/scicomp" title="High Performance Scientific Computing"&gt;High Performance Scientific
Computing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/course/audio" title="Audio Signal Processing for Music Applications"&gt;Audio Signal Processing for Music
Applications&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.coursera.org/courses?search=python" title="Wyszukiwanie: python"&gt;Wyszukiwanie:
python&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 17 Sep 2014 17:49:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-09-17:/darmowe-kursy-pythona-coursera.html</guid><category>Python</category><category>darmowe</category><category>kurs</category><category>Python</category></item><item><title>Darmowe kursy Pythona: Codecademy</title><link>https://blog.furas.pl/darmowe-kursy-pythona-codecademy.html</link><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.codecademy.com/tracks/python"&gt;Python&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 17 Sep 2014 17:45:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-09-17:/darmowe-kursy-pythona-codecademy.html</guid><category>Python</category><category>darmowe</category><category>kurs</category><category>Python</category></item><item><title>Darmowy ebook Pythona: Python for Informatics: Exploring Information</title><link>https://blog.furas.pl/darmowy-ebook-pythona-python-for-informatics-exploring-information.html</link><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.pythonlearn.com/book.php"&gt;Python for Informatics: Exploring
Information&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 17 Sep 2014 17:41:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-09-17:/darmowy-ebook-pythona-python-for-informatics-exploring-information.html</guid><category>Python</category><category>python</category><category>darmowe</category><category>ebook</category></item><item><title>Kivy buildozer i problem z Android SDK Build Tools revision (19.0.3)</title><link>https://blog.furas.pl/kivy-buildozer-i-problem-z-android-sdk-build-tools-revision-19-0-3.html</link><description>&lt;p&gt;Chciałem skompilować program w Kivy do pakietu apk korzystając z
narzędzia buildozer.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;buildozer android release&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pierwsza próba zakończyła się niepowodzeniem ale buildozer ma zwyczaj
niepokazywania szczegółów problemu&lt;br&gt;
więc uruchomiłem całość jeszcze raz z atrybutem "-v" (verbose) aby
dowiedzieć się czegoś więcej.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;buildozer -v android release&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Wśród komunikatów pojawiła się linia …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 19 Jul 2014 03:16:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-07-19:/kivy-buildozer-i-problem-z-android-sdk-build-tools-revision-19-0-3.html</guid><category>Python</category><category>python</category><category>kivy</category></item><item><title>Kursy Pythona na Udemy.com</title><link>https://blog.furas.pl/kursy-pythona-na-udemy-com.html</link><description>&lt;h2&gt;&lt;a href="https://www.udemy.com/python-for-beginners/?dtcode=KicUUXE15Lfj"&gt;Python for Beginners&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Learn Python Programming on the Mac or PC with "Python for Beginners" Python training course.&lt;/em&gt; &lt;br&gt;
cena: $99   &lt;/p&gt;
&lt;h2&gt;&lt;a href="https://www.udemy.com/python-for-rookies/?dtcode=FdPNB8L15Lfj"&gt;Python for Rookies&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Learn the basics of the legendary Python language.&lt;/em&gt;&lt;/br&gt;&lt;br&gt;
cena: $29&lt;/br&gt;&lt;/br&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a href="https://www.udemy.com/python-and-python-django-for-beginners-2-course-package/?dtcode=DMLPGeT15Lfj"&gt;Python and Python Django for Beginners 2 Course Package&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Python programming done right.&lt;/em&gt;&lt;/br&gt;&lt;br&gt;
cena: $29&lt;/br&gt;&lt;/br&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a href="https://www.udemy.com/web-programming-with-python/?dtcode=keU7TVl15Lfj"&gt;Web Programming …&lt;/a&gt;&lt;/h2&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 06 Jul 2014 22:58:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-07-06:/kursy-pythona-na-udemy-com.html</guid><category>Python</category><category>darmowe</category><category>kurs</category><category>Python</category></item><item><title>30 funkcji i sztuczek w Pythonie których mogłeś nie znać</title><link>https://blog.furas.pl/30-funkcji-i-sztuczek-w-pythonie-ktorych-mogles-nie-znac.html</link><description>&lt;p&gt;Na poniższej stronie można zobaczyć listę przykładów użycia funkcji oraz sztuczek w Pythonie, o których mogłeś nie wiedzieć.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://sahandsaba.com/thirty-python-language-features-and-tricks-you-may-not-know.html"&gt;30 Python Language Features and Tricks You May Not Know About&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 19 Mar 2014 01:48:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-19:/30-funkcji-i-sztuczek-w-pythonie-ktorych-mogles-nie-znac.html</guid><category>Python</category><category>Python</category><category>tricks</category></item><item><title>Próba wyjaśnienia co to jest klasa, obiekt, atrybuty w Pythonie</title><link>https://blog.furas.pl/proba-wyjasnienia-co-to-jest-klasa-obiekt-atrybuty-pythonie.html</link><description>&lt;p&gt;To jest „przedruk” mojej wypowiedzi na polskim forum Pythona.&lt;/p&gt;
&lt;p&gt;http://pl.python.org/forum/index.php?topic=3764.msg19009#msg19009&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Może trochę przesadze w opisie ale jak przeczytałem o kaczuszkach i
samochodzikach to przyszło mi do głowy:&lt;/p&gt;
&lt;p&gt;Idź do IKEA, kup taboret do skręcenia a jak w domu go rozpakujesz …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 19 Mar 2014 01:34:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-19:/proba-wyjasnienia-co-to-jest-klasa-obiekt-atrybuty-pythonie.html</guid><category>Python</category><category>klasy</category><category>objekty</category><category>Python</category></item><item><title>Ukryte możliwości Pythona według użytkowników Stackoverflow.com</title><link>https://blog.furas.pl/ukryte-mozliwosci-pythona-wedlug-uzytkownikow-stackoverflow-com.html</link><description>&lt;p&gt;Na poniższej stronie użytkownicy Stackoverflow.com zebrali ciekawe
możliwości Pythona&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/101268/hidden-features-of-python" title="Hidden features of Python"&gt;Hidden features of
Python&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 19 Mar 2014 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-19:/ukryte-mozliwosci-pythona-wedlug-uzytkownikow-stackoverflow-com.html</guid><category>Python</category><category>python</category></item><item><title>Przykład rysowania linii za poruszającym się graczem w Pygame</title><link>https://blog.furas.pl/przyklad-rysowania-linii-za-poruszajacym-sie-graczem-w-pygame.html</link><description>&lt;p&gt;To jest "przedruk" mojej wypowiedzi na polskim forum Pythona.&lt;/p&gt;
&lt;p&gt;http://pl.python.org/forum/index.php?topic=4433.msg18982#msg18982&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Prosty przykład rysowania kreski. Bez stale przemieszczającego się
gracza. Czyli bez kropki oznaczającej gracza.&lt;/p&gt;
&lt;p&gt;Kreska rysuje się tylko gdy wciska się klawisze strzałek. Rysowanie
odbywa się tylko w kierunku wskazanym …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 13 Mar 2014 00:47:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-13:/przyklad-rysowania-linii-za-poruszajacym-sie-graczem-w-pygame.html</guid><category>Python</category><category>python</category><category>pygame</category></item><item><title>Prosty przykład robienia kopii listy i bardziej złożonej obiektu w Pythonie</title><link>https://blog.furas.pl/prosty-przyklad-robienia-kopii-listy-bardziej-zlozonej-obiektu-pythonie.html</link><description>&lt;p&gt;To jest „przedruk” mojej wypowiedzi na polskim forum Pythona
http://pl.python.org/forum/index.php?topic=4366.msg18798#msg18798&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Jeśli poniższa konstrukcja ma służyć do stworzenia kopii listy&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;list_of_words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;main_list&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;list_of_words&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;to jest do tego specjalna konstrukcja&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;list_of_words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;main_list&lt;/span&gt;&lt;span class="p"&gt;[:]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;a jak potrzebujesz zrobić kopię …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 22:01:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/prosty-przyklad-robienia-kopii-listy-bardziej-zlozonej-obiektu-pythonie.html</guid><category>Python</category><category>Python</category></item><item><title>Wyrównywanie widgetów, tekstów na widgecie i linii w tekscie w Tkinter</title><link>https://blog.furas.pl/wyrownywanie-widgetow-tekstow-na-widgecie-i-linii-w-tekscie-w-tkinter.html</link><description>&lt;p&gt;To jest „przedruk” mojej wypowiedzi na polskim forum Pythona
http://pl.python.org/forum/index.php?topic=4366.msg18709#msg18709&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Wyrównywanie elementów do prawej i lewej&lt;/p&gt;
&lt;p&gt;Sposób wyrównywania zależy od użytego układu - pack, grid.&lt;/p&gt;
&lt;p&gt;Po pierwsze: w przypadku Label (które domyślnie nie wyświetla ramki) nie
widać, że Label nie zajmuje …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 21:50:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/wyrownywanie-widgetow-tekstow-na-widgecie-i-linii-w-tekscie-w-tkinter.html</guid><category>Python</category><category>gui</category><category>python</category><category>tkinter</category></item><item><title>Tupla inaczej krotka w Pythonie</title><link>https://blog.furas.pl/tupla-inaczej-krotka-pythonie.html</link><description>&lt;p&gt;To jest „przedruk” mojej wypowiedzi na polskim forum Pythona
http://pl.python.org/forum/index.php?topic=4366.msg18707#msg18707&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Pytanie:&lt;/p&gt;
&lt;pre&gt;
    co oznacza '(0,0)' w nawiasach wewnetrznych?
&lt;/pre&gt;

&lt;p&gt;To jest typ danych zwany &lt;code&gt;"krotka"&lt;/code&gt; lub z angielskiego &lt;code&gt;"tupla"&lt;/code&gt;. Typ ten po zdefiniowaniu jest niezmienny (ang. immutable). Można z niego pobrać …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 21:45:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/tupla-inaczej-krotka-pythonie.html</guid><category>Python</category><category>Python</category></item><item><title>Przykład przewijanej ramki `Frame` w Tkinter</title><link>https://blog.furas.pl/przyklad-przewijanej-ramki-frame-tkinter.html</link><description>&lt;p&gt;To jest „przedruk” mojej wypowiedzi na polskim forum Pythona
http://pl.python.org/forum/index.php?topic=4366.msg18701#msg18701&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Rzeczywiście pytanie jest trudniejsze bo w &lt;code&gt;Tkinter&lt;/code&gt; (w
przeciwieństwie do innych GUI) nie ma jakieś specjalnej ramki, której
zawartość dało by się przewijać. Zdaje się, że jedyne elementy jakie da …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 21:40:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/przyklad-przewijanej-ramki-frame-tkinter.html</guid><category>Python</category><category>python</category><category>tkinter</category></item><item><title>Prosty przykład komunikacji między oknem rodzica i potomka w Tkinter</title><link>https://blog.furas.pl/prosty-przyklad-komunikacji-miedzy-oknem-rodzica-potomka-tkinter.html</link><description>&lt;p&gt;To jest "przedruk" mojej wypowiedzi na polskim forum Pythona
http://pl.python.org/forum/index.php?topic=4366.msg18688#msg18688&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Przeróbka poprzedniego przykładu - teraz przycisk w oknie &lt;code&gt;Child&lt;/code&gt;
zmienia napis na przycisku w oknie &lt;code&gt;Main&lt;/code&gt; dzięki temu, że rodzic
przekazuje &lt;code&gt;self&lt;/code&gt; do dziecka. Dodatkowo dziecko wywołuje funkcje
&lt;code&gt;onButton()&lt;/code&gt; należącą do …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 21:36:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/prosty-przyklad-komunikacji-miedzy-oknem-rodzica-potomka-tkinter.html</guid><category>Python</category><category>python</category><category>tkinter</category></item><item><title>Wyrażenie lambda w command= przy przypisywaniu funkcji do widgeta w Tkinter</title><link>https://blog.furas.pl/wyrazenie-lambda-command-przy-przypisywaniu-funkcji-widgeta-tkinter.html</link><description>&lt;p&gt;To jest "przedruk" jednej z moich wypowiedzi na polskim forum Pythona.
http://pl.python.org/forum/index.php?topic=4366.msg18668#msg18668&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Poniższy opis odnosi się np. do kodu&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;master&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Wcisnij&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr&gt;
&lt;p&gt;Do przekazywania argumentów w &lt;code&gt;command&lt;/code&gt; przydatna staje sie funkcja
&lt;code&gt;lambda&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;onButton&lt;/span&gt;  &lt;span class="c1"&gt;# bez nawiasów&lt;/span&gt;

&lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="n"&gt;command …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 20:55:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/wyrazenie-lambda-command-przy-przypisywaniu-funkcji-widgeta-tkinter.html</guid><category>Python</category><category>Python</category><category>tkinter</category></item><item><title>Tworzenie podokna w Tkinter za pomocą Toplevel()</title><link>https://blog.furas.pl/tworzenie-podokna-tkinter-za-pomoca-toplevel.html</link><description>&lt;p&gt;To jest "przedruk" jednej z moich wypowiedzi na polskim forum Pythona.
http://pl.python.org/forum/index.php?topic=4366.msg18662#msg18662&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Złóżone GUI posiada tylko jedno okno główne a wszystko inne to jego
potomstwo. Jest to naturalny sposób działania - (prawie) każdy program
tak działa (niezależnie od języka czy biblioteki …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Mar 2014 20:35:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-11:/tworzenie-podokna-tkinter-za-pomoca-toplevel.html</guid><category>Python</category><category>gui</category><category>python</category><category>tkinter</category></item><item><title>Bind w Tkinter czyli przykłady przypisywania obsługi zdarzeń.</title><link>https://blog.furas.pl/bind-tkinter-czyli-przyklady-przypisywania-obslugi-zdarzen.html</link><description>&lt;p&gt;Proste przykłady użycia bind&lt;/p&gt;
&lt;p&gt;Na początek okno z kilkoma przyciskami.
Zadałem oknu wielkość aby mieć też dostęp bezpośrednio do powierzchni okna.&lt;/p&gt;
&lt;p&gt;Do przy przycisków przypisałem funkcje za pomoca &lt;code&gt;command=&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;#-*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;Tkinter&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Wciśnięto (jakiś) Button&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;master&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;master&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;300x150+100+100&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;b_a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;master …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 09 Mar 2014 20:15:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-09:/bind-tkinter-czyli-przyklady-przypisywania-obslugi-zdarzen.html</guid><category>Python</category><category>bind</category><category>python</category><category>tkinter</category><category>zdarzenia</category><category>gui</category></item><item><title>Tworzenie gier 2D w Pythonie</title><link>https://blog.furas.pl/moduly-tworzenia-gier-2d-pythonie.html</link><description>&lt;p&gt;Lista nie zawiera informacji o modułach do gier 3D&lt;/p&gt;
&lt;h2&gt;Moduły popularne&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://pygame.org/" title="PyGame"&gt;PyGame&lt;/a&gt; - oparty na bibliotece &lt;a href="http://www.libsdl.org" title="Simple DirectMedia Layer"&gt;SDL
    1.2&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;(plus) pozwala na proste rozpoczęcie tworzenia gry&lt;/li&gt;
&lt;li&gt;(minus) pozwala na pisanie chaotycznego kodu bez użycia klas i
    potem takie potworki straszą w pytaniach na StackOverflow.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pysdl2.readthedocs.org/en/latest/" title="PySDL2"&gt;PySDL2&lt;/a&gt; - oparty
    na bibliotece &lt;a href="http://blog.furas.pl/roznice-miedzy-python2-python3/" title="Simple DirectMedia Layer"&gt;SDL
    2 …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 09 Mar 2014 17:39:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-09:/moduly-tworzenia-gier-2d-pythonie.html</guid><category>Python</category><category>2D</category><category>game</category><category>pygame</category><category>Python</category></item><item><title>Moje źródła informacji o różnicach w Python 2 i Python 3 czyli portowanie</title><link>https://blog.furas.pl/moje-zrodla-informacji-roznicach-python-2-python-3-czyli-portowanie.html</link><description>&lt;h2&gt;Różnice między Python 2 i Python 3&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html" title="Porting Code to Python 3 with 2to3"&gt;Porting Code to Python 3 with
    2to3&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;na diveintopython3.net&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docs.pythonsprints.com/python3_porting/py-porting.html" title="Python 3 Porting Guide"&gt;Python 3 Porting
    Guide&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;między innymi różnice w nazwach modułów&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Inne&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://python3wos.appspot.com/" title="Python 3 Wall of Superpowers"&gt;Python 3 Wall of
    Superpowers&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;lista modułów przeniesionych do Python 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://python3porting.com/toc.html" title="Porting to Python 3 - The Book Site"&gt;Porting to Python 3 - The Book
    Site&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;książka on-line&lt;/li&gt;
&lt;li&gt;&lt;a href="http://python3porting.com/differences.html" title="Language differences and workarounds"&gt;Language differences …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 09 Mar 2014 15:51:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-09:/moje-zrodla-informacji-roznicach-python-2-python-3-czyli-portowanie.html</guid><category>Python</category><category>porting</category><category>Python</category><category>python2</category><category>python3</category></item><item><title>Moje źródła informacji o Tkinter czyli Tcl/Tk w Pythonie</title><link>https://blog.furas.pl/moje-zrodla-informacji-tkinter-czyli-tktcl-pythonie.html</link><description>&lt;h2&gt;Dokumentacja&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.effbot.org/tkinterbook/tkinter-index.htm" title="An Introduction To Tkinter"&gt;An Introduction To
    Tkinter&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;na effbot.org&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tkdocs.com/tutorial/" title="TK docs"&gt;TK docs&lt;/a&gt; - przykłady w
    Tcl, Python, Perl i Ruby&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.tutorialspoint.com/python/python_gui_programming.htm" title="Python GUI Programming (Tkinter)"&gt;Python GUI Programming
    (Tkinter)&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;na TutorialsPoint.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html" title="Tkinter 8.5 reference: a GUI for Python"&gt;Tkinter 8.5 reference: a GUI for
    Python&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;na New Mexico Tech&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Tutoriale&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://zetcode.com/gui/tkinter/" title="Tkinter tutorial by ZetCode"&gt;Tkinter tutorial&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;na ZetCode.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Problemy/Pytania/Rozwiązania&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/tagged/tkinter" title="Stackoverflow.com - tag: tkinter"&gt;Stackoverflow.com - tag:
    tkinter&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 08 Mar 2014 15:54:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-03-08:/moje-zrodla-informacji-tkinter-czyli-tktcl-pythonie.html</guid><category>Python</category><category>Python</category><category>python2</category><category>python3</category><category>tkinter</category></item><item><title>Liczenie czasu w PyGame za pomocą time.get_ticks()</title><link>https://blog.furas.pl/liczenie-czasu-pygame-za-pomoca-time-get_ticks.html</link><description>&lt;p&gt;W Pygame nie ma specjalnej funkcji do liczenia ile czasu minęło od
jakiegoś wydarzenia.
Wszelkie działania z czasem opierają się na funkcji
&lt;code&gt;pygame.time.get_ticks()&lt;/code&gt;, która podaje ilość milisekund (tyknięć) od
wywołania &lt;code&gt;pygame.init()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Nie da się tej liczby wyzerować więc podstawowym sposobem liczenia czasu
jest odejmowanie&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# kiedy zaczynasz grę …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 27 Feb 2014 16:59:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-02-27:/liczenie-czasu-pygame-za-pomoca-time-get_ticks.html</guid><category>Python</category><category>pygame</category><category>python</category><category>time</category></item><item><title>Różnice między Python2 i Python3</title><link>https://blog.furas.pl/roznice-miedzy-python2-python3.html</link><description>&lt;p&gt;Moje źródła informacji o różnicach między Python 2.x i 3.x&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://docs.pythonsprints.com/python3_porting/" title="Porting to Python 3’s documentation!"&gt;Porting to Python 3’s
    documentation!&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;W szczególności rozdział &lt;a href="http://docs.pythonsprints.com/python3_porting/py-porting.html" title="Python 3 Porting Guide"&gt;Python 3 Porting
    Guide&lt;/a&gt;
    podający między innymi zmiany nazw bibliotek i ich reorganizację&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://python3porting.com" title="Porting to Python 3 - The Book Site"&gt;Porting to Python 3 - The Book
    Site&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;W szczególności rozdział &lt;a href="http://python3porting.com/differences.html" title="Language differences and workarounds"&gt;Language differences and
    workarounds&lt;/a&gt;
    podający alfabetycznie …&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 25 Feb 2014 16:51:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-02-25:/roznice-miedzy-python2-python3.html</guid><category>Python</category><category>portowanie</category><category>Python</category><category>python2</category><category>python3</category><category>różnice</category></item><item><title>Użycie klasy i timera w PyGame na przykładzie zegara</title><link>https://blog.furas.pl/uzycie-klasy-i-timera-w-pygame-na-przykladzie-zegara.html</link><description>&lt;p&gt;[![Zegary w
Pygame](http://blog.furas.pl/images/2014/02/clock_with_class.png "Zegary w Pygame&lt;/p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;")](http://blog.furas.pl/uzycie-klasy-i-timera-w-pygame-na-przykladzie-zegara/clock_with_class/)

Część mojej odpowiedzi na pytanie "Clock in Python" zadane w dziale
"Pygame"
na StackOverflow.com:
&lt;http://stackoverflow.com/questions/21978044/clock-in-python&gt;

&lt;!--more--&gt;
-----------

Umieszczenie zegara w klasie
----------------------------

    ::::python
    #!/usr/bin/python

    from pygame import *
    from pygame.locals …&lt;/http:&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 25 Feb 2014 03:07:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2014-02-25:/uzycie-klasy-i-timera-w-pygame-na-przykladzie-zegara.html</guid><category>Python</category><category>class</category><category>pygame</category><category>python</category><category>stackoverflow</category><category>timer</category><category>zegar</category></item><item><title>Status Skype'a w postaci ikony, tekstu lub liczby</title><link>https://blog.furas.pl/status-skype-w-postaci-ikony-tekstu-lub-liczby.html</link><description>&lt;p&gt;Skype pozwala zaprezentować swój status na stronie korzystając z gotowych ikonek
ale jest też możliwość pobrania statusu w postaci czystego tekstu, liczby lub xml,
które można następnie wykorzystać do własnego przestawienia statusu.&lt;/p&gt;
&lt;p&gt;W poniższych przykładach zamiast mojego identyfikator w skype używam: MY_SKYPE_ID&lt;/p&gt;
&lt;!--more--&gt;

&lt;p&gt;Aby status był dostępny trzeba w "Opcje" -&amp;gt; "Prywatność …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 14 Oct 2012 02:46:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-10-14:/status-skype-w-postaci-ikony-tekstu-lub-liczby.html</guid><category>HTML</category><category>HTML</category><category>skype</category></item><item><title>Chowanie napisu "NIEAKTUALNE" z oferty otodom.pl</title><link>https://blog.furas.pl/chowanie-napisu-nieaktualne-oferty-otodom-pl.html</link><description>&lt;p&gt;Portal otodom.pl szczegóły nieaktualnej oferty przesłania
półprzezroczystym prostokątem i napisem "NIEAKTUALNE" co nie pozwala
zaznaczać i kopiować teksty oraz przeglądać zdjęcia. Wystarczy jednak
nadać wspomnianym elementom własności display:none (CSS) np. korzystając
z firebug w firefox aby zniknęły dając dostęp do danych. Ponieważ takie
ustawienie jest trochę czasochłonne a …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 14 Oct 2012 01:19:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-10-14:/chowanie-napisu-nieaktualne-oferty-otodom-pl.html</guid><category>HTML</category><category>bookmarklet</category><category>css</category><category>HTML</category><category>stylish</category></item><item><title>TextEntryDialog proste okno dialogowe do wprowadzania tekstu w wxPython</title><link>https://blog.furas.pl/textentrydialog-proste-okno-dialogowe-wprowadzania-tekstu-wxpython.html</link><description>&lt;h2&gt;Najprostrzy przykład użycia&lt;/h2&gt;
&lt;p&gt;Tworzenie okna dialogowego do wprowadzania tekstu, wyświetlenie,
sprawdzanie czy wciśnięto OK i pobranie wprowadzonego tekstu&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/python&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;wx&lt;/span&gt;

&lt;span class="c1"&gt;# inicjacja wx&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;wx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# definicja okna dialogowego&lt;/span&gt;
&lt;span class="n"&gt;dlg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;wx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TextEntryDialog&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Podaj tekst&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# pokazanie okna i pobranie informacji o sposobie zamkniecia okna&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;dlg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ShowModal&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;wx …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 19 Sep 2012 20:32:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-19:/textentrydialog-proste-okno-dialogowe-wprowadzania-tekstu-wxpython.html</guid><category>Python</category><category>gui</category><category>okno dialogowe</category><category>python</category><category>wxpython</category></item><item><title>Operator trójargumentowy ?: w Pythonie</title><link>https://blog.furas.pl/operator-trojargumentowy-pythonie.html</link><description>&lt;h3&gt;Aktualizacja&lt;/h3&gt;
&lt;p&gt;Zobacz poszerzony opis na mojej stronie: &lt;a href="https://blog.furas.pl/operator-trojargumentowy-w-pythonie.html"&gt;Operator trójargumentowy w Pythonie&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Krótki opis&lt;/h3&gt;
&lt;p&gt;Wiele języków posiada operator trójargumentowy w postaci &lt;code&gt;?:&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;warunek ? wynik_gdy_prawda : wynik_gdy_fałsz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Przykład w PHP&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;echo $a != 0 ? &amp;quot;różne od zera&amp;quot; : &amp;quot;równe zero&amp;quot;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;W Pythonie operator trójargumentowy ma inną postać&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;wynik_gdy_prawda&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;warunek&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;wynik_gdy_fałsz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Przykład w Pythonie&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;print …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 19 Sep 2012 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-19:/operator-trojargumentowy-pythonie.html</guid><category>Python</category><category>python</category></item><item><title>Sprawdzanie PageRank w Pythonie</title><link>https://blog.furas.pl/sprawdzanie-pagerank-pythonie.html</link><description>&lt;p&gt;Oto skrypt w pytonie do sprawdzania PageRank dostępny z
&lt;a href="https://github.com/phurix/pagerank"&gt;https://github.com/phurix/pagerank&lt;/a&gt; (pagerank2.py), który
zmodyfikowałem tak aby zwracało sam numer PR lub '-' jeśli strona nie
posiada PageRank. Dodatkowo dzięki &lt;strong&gt;name&lt;/strong&gt; może być od razu
wykorzystywany jako samodzielny skrypt do sprawdzania PageRank lub
importowany do innych, bardziej rozbudowanych …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Sep 2012 02:45:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-17:/sprawdzanie-pagerank-pythonie.html</guid><category>Python</category><category>pagerank</category><category>python</category><category>seo</category></item><item><title>Jak zrobić authorship dla wszystkich stron</title><link>https://blog.furas.pl/jak-zrobic-authorship-dla-wszystkich-stron.html</link><description>&lt;p&gt;&lt;strong&gt;Authorship&lt;/strong&gt; czyli przypisanie naszego "autorstwa" (w postaci zdjęcia
profilowego z Google+) do naszych linków pokazywanych w wynikach
wyszukiwania Google.&lt;/p&gt;
&lt;p&gt;Na własnej stronie/blogu gdzie wszystkie strony są generowane z jednego
szablonu można przypisać autorstwo do wszystkiego poprzez dodanie w
nagłówku szablonu linku do naszej strony w Google+&lt;/p&gt;
&lt;p&gt;W przykładzie wycinek …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Sep 2012 01:43:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-17:/jak-zrobic-authorship-dla-wszystkich-stron.html</guid><category>HTML</category></item><item><title>Przycinanie nazwy pliku i katalogu w Bash</title><link>https://blog.furas.pl/przycinanie-nazwy-pliku-i-katalogu-w-bash.html</link><description>&lt;p&gt;Bash ma wiele ciekawych możliwości, które pozwalają zrobić wiele rzeczy bez odwoływania się do innych programów.&lt;/p&gt;
&lt;p&gt;Przykład działań na tekście np. na ścieżce do pliku&lt;/p&gt;
&lt;p&gt;Przykładowa zmienna do prezentacji&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ &lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/uzytkownik/skrypt.123.py
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;wypisanie zmiennej&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$a&lt;/span&gt;
/home/uzytkownik/skrypt.123.py
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;wypisanie zmiennej - alteratywny sposób&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;a …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Sep 2012 01:07:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-17:/przycinanie-nazwy-pliku-i-katalogu-w-bash.html</guid><category>Linux</category><category>linux</category><category>bash</category></item><item><title>Użycie __name__ w Pythonie</title><link>https://blog.furas.pl/uzycie-__name__-pythonie.html</link><description>&lt;p&gt;Plik ze skryptem jest traktowany przez interpreter Pythona jako obiekt i
podczas wczytania uruchamiania lub importowania przez inny skryptuje
jako obiekt i automatycznie zostaje mu nadana właściwość
&lt;strong&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/strong&gt;, której zostaje przypisana nazwa pliku (bez
rozszerzenia) jeśli został on zaimportowany lub wartość "&lt;strong&gt;main&lt;/strong&gt;"
jeśli został uruchomiony bezpośrednio.&lt;/p&gt;
&lt;p&gt;Przykładowy skrypt &lt;em&gt;modulik.py …&lt;/em&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Mon, 17 Sep 2012 00:35:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-17:/uzycie-__name__-pythonie.html</guid><category>Python</category><category>Python</category><category>script</category><category>skrypt</category></item><item><title>Substring w Pythonie</title><link>https://blog.furas.pl/substring-pythonie.html</link><description>&lt;h2&gt;in&lt;/h2&gt;
&lt;p&gt;Sprawdza tylko czy podciąg znajduje się w przeszukiwanym tekscie (bez
podawania jego pozycji).&lt;br&gt;
Zwraca True lub False.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;er&amp;quot;&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;qwerty&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;znaleziono&amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;nie znaleziono&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;find, rfind&lt;/h2&gt;
&lt;p&gt;Podaje pozycję pierwszego(find) lub ostatniego(rfind) wystąpienia
podciągu w przeszukiwanym tekście.&lt;br&gt;
Pozycja jest liczona od 0.&lt;br&gt;
W razie nieznalezienia …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Sep 2012 23:10:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-11:/substring-pythonie.html</guid><category>Python</category><category>Python</category><category>script</category><category>skrypt</category></item><item><title>PythonFiddle czyli jsFiddle dla Python'a</title><link>https://blog.furas.pl/pythonfiddle-czyli-python-chmurze-internetowej.html</link><description>&lt;p&gt;Tak jak twórzy stron internetowych dla sprawdzenia kodu i podzielenia
się nim z innymi mają jsFiddle&lt;br&gt;
tak programujący w Pythonie mają do tego&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://pythonfiddle.com" title="PythonFiddle"&gt;PythonFiddle&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 11 Sep 2012 17:44:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-11:/pythonfiddle-czyli-python-chmurze-internetowej.html</guid><category>Python</category><category>cloud</category><category>fiddle</category><category>Python</category></item><item><title>Makro w Pythonie dla LibreOffice/OpenOffice - wstęp</title><link>https://blog.furas.pl/makro-w-pythonie-dla-libreoffice-openoffice-wstep.html</link><description>&lt;p&gt;LibreOffice i OpenOffice nie ma wbudowanego edytora do tworzenie makr w
Pythonie tak jak ma to miejsce dla VBA. Dlatego skrypt z funkcjami w
Pythonie należy utworzyć w ulubionym edytorze (lub IDE) a następnie
umieścić (lub zapisywać na bierząco w trakcie tworzenia) w jednym z
poniższych katalogów.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;katalog na indywidualne …&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 08 Sep 2012 00:40:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-08:/makro-w-pythonie-dla-libreoffice-openoffice-wstep.html</guid><category>Python</category><category>python</category><category>libreoffice</category></item><item><title>Jak uzyskać polskie znaki w Google Web Fonts</title><link>https://blog.furas.pl/jak-uzyskac-polskie-znaki-google-web-fonts.html</link><description>&lt;p&gt;Jeśli czcionka linkowana z Google Web Fonts posiadająca polskie znaki
nie wyświetla ich na stronie pomimo dodania do linku &lt;strong&gt;subset=latin&lt;/strong&gt; to
należy to zamienić na &lt;strong&gt;subset=latin-ext&lt;/strong&gt; lub
&lt;strong&gt;subset=latin,latin-ext&lt;/strong&gt;. Przykład linku dla czcionki Oregano&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;...&lt;/span&gt;

&lt;span class="o"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;!--more--&gt;

&lt;p&gt;Pełny przykład dla czcionki Open Sans. Dla porównania drugi tekst jest w
Georgia …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 05 Sep 2012 14:41:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-09-05:/jak-uzyskac-polskie-znaki-google-web-fonts.html</guid><category>HTML</category><category>fonts</category><category>HTML</category></item><item><title>Wyświetlanie w Pythonie najprostrzego okienka z komunikatem przy użyciu wxPython (wxWidgets)</title><link>https://blog.furas.pl/wyswietlanie-w-pythonie-najprostrzego-okienka-z-komunikatem-przy-uzyciu-wxpython.html</link><description>&lt;p&gt;Oto przykład wyświetlania w &lt;strong&gt;Pythonie&lt;/strong&gt; najprostrzego okienka z
komunikatem dzięki funkcji &lt;strong&gt;MessageBox&lt;/strong&gt; dostępnej w &lt;strong&gt;wxPython&lt;/strong&gt;
(wxWidgets).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/python&lt;/span&gt;
&lt;span class="c1"&gt;# -*- coding: utf-8 -*-&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;wx&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;wx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;wx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MessageBox&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Hello World !!!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Nowa wiadomość&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;​1. Dodanie biblioteki &lt;strong&gt;wxPython&lt;/strong&gt; (import wx)&lt;/p&gt;
&lt;p&gt;​2. Inicjalizacja &lt;strong&gt;wxPython&lt;/strong&gt; poprzez przypisanie &lt;strong&gt;wx.App()&lt;/strong&gt; do
dowolnej zmiennej.&lt;br&gt;
Zmienna ta …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 26 Aug 2012 18:05:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-08-26:/wyswietlanie-w-pythonie-najprostrzego-okienka-z-komunikatem-przy-uzyciu-wxpython.html</guid><category>Python</category><category>Python</category><category>wxpython</category><category>wxwidgets</category></item><item><title>Instalacja programu .msi w linuxie</title><link>https://blog.furas.pl/uruchamianie-plikow-msi-w-linuxie.html</link><description>&lt;p&gt;Posiadając zainstalowany WINE aby zainstalować program.msi w konsoli
wydajemy komendę&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;wine msiexec /i program.msi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sun, 12 Aug 2012 14:18:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-08-12:/uruchamianie-plikow-msi-w-linuxie.html</guid><category>Linux</category><category>linux</category><category>wine</category><category>msi</category></item><item><title>Kohana w przykładach: routing z jednym uniwersalnym argumentem</title><link>https://blog.furas.pl/kohana-w-przykladach-routing-z-jednym-uniwersalnym-argumentem.html</link><description>&lt;p&gt;Przechwytywanie wszystkiego co zostało podane po controller/action&lt;br&gt;
np: www.domena.pl/welcome/index/hack,this,site lub
www.domena.pl/welcome/index/kod-promocyjny-programu-partnerskiego&lt;br&gt;
Standarowy (default) routing w przypadku dodania argumentu nie
przechwyci adresu strony.&lt;/p&gt;
&lt;!--more--&gt;

&lt;p&gt;&lt;strong&gt;bootstrap:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
    &lt;span class="s1"&gt;&amp;#39;default-z-jednym-argumentem&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;&amp;#39;(/)((/(/)))&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;reszta&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;czyli&lt;/span&gt; &lt;span class="n"&gt;wszystkie&lt;/span&gt; &lt;span class="n"&gt;znaki&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="n"&gt;tym&lt;/span&gt; &lt;span class="n"&gt;także&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;rest&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;.*&amp;#39;&lt;/span&gt; 
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;array …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 26 Jun 2012 13:58:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-06-26:/kohana-w-przykladach-routing-z-jednym-uniwersalnym-argumentem.html</guid><category>PHP</category><category>PHP</category><category>Kohana</category><category>routing</category></item><item><title>Kohana w przykładach: domyślny routing z argumentami dla strony</title><link>https://blog.furas.pl/kohana-w-przykladach-domyslny-routing-z-argumentami-dla-strony.html</link><description>&lt;p&gt;Przekazywanie argumentów do wywoływanej strony&lt;/p&gt;
&lt;!--more--&gt;

&lt;p&gt;&lt;strong&gt;bootstrap:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
    &lt;span class="s1"&gt;&amp;#39;default-z-argumentami&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="s1"&gt;&amp;#39;(/)((/(/(/(/(/(/(/))))))))&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;argumenty&lt;/span&gt; &lt;span class="n"&gt;odzielone&lt;/span&gt; &lt;span class="n"&gt;znakiem&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;czyli&lt;/span&gt; &lt;span class="n"&gt;ciągi&lt;/span&gt; &lt;span class="n"&gt;znaków&lt;/span&gt; &lt;span class="n"&gt;bez&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;arg1&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;[^/]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="s1"&gt;&amp;#39;arg2&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;[^/]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;arg3&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;[^/]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;arg4&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;[^/]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;arg5&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;[^/]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;reszta&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;czyli&lt;/span&gt; &lt;span class="n"&gt;wszystkie&lt;/span&gt; &lt;span class="n"&gt;znaki&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="n"&gt;tym&lt;/span&gt; &lt;span class="n"&gt;także&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;rest&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;.*&amp;#39;&lt;/span&gt; 
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;defaults&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;controller&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;welcome&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;action&amp;#39;&lt;/span&gt;     &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;index&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;controller&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;public&lt;/span&gt; &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;action_index&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; 
&lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;pobierania&lt;/span&gt; &lt;span class="n"&gt;argumentow&lt;/span&gt; 
    &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;jesli&lt;/span&gt; &lt;span class="n"&gt;argument&lt;/span&gt; &lt;span class="n"&gt;nie&lt;/span&gt; &lt;span class="n"&gt;byl&lt;/span&gt; &lt;span class="n"&gt;podany&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="n"&gt;domyslnie …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 26 Jun 2012 13:35:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2012-06-26:/kohana-w-przykladach-domyslny-routing-z-argumentami-dla-strony.html</guid><category>PHP</category><category>PHP</category><category>Kohana</category><category>routing</category></item><item><title>RYM - Tłusty Czwartek</title><link>https://blog.furas.pl/rym-tlusty-czwartek.html</link><description>&lt;pre&gt;
    Pączek pączka pączkiem pogania.
    I tak od świtu aż do zapchania.

    Dopóki człowiek na nogach stoi
    żaden się pączek dziś nie ostoi.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 03 Mar 2011 00:00:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2011-03-03:/rym-tlusty-czwartek.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>WiFi - standardowe narzędzie</title><link>https://blog.furas.pl/wifi-standardowe-narzedzia.html</link><description>&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ netsh wlan show networks &lt;span class="nv"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;bssidll
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Fri, 25 Feb 2011 18:42:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2011-02-25:/wifi-standardowe-narzedzia.html</guid><category>linux</category><category>linux</category><category>tools</category><category>wardriving</category><category>wifi</category><category>windows</category></item><item><title>Cron + PHP na Cal.pl</title><link>https://blog.furas.pl/cron-plus-php-na-cal-pl.html</link><description>&lt;p&gt;Nazwa konta na cal.pl: &lt;code&gt;LOGIN&lt;/code&gt;&lt;br&gt;
Nazwa strony na cal.pl: &lt;code&gt;http://LOGIN.cal.pl&lt;/code&gt;&lt;br&gt;
Skrzynak pocztowa na cal.pl: &lt;code&gt;LOGIN@LOGIN.cal.pl&lt;/code&gt;  &lt;/p&gt;
&lt;p&gt;Ścieżka do php: &lt;code&gt;/usr/local/bin/php&lt;/code&gt;&lt;br&gt;
Katalog domowy konta widziany przez nas (np. przez ftp) jako &lt;code&gt;/&lt;/code&gt; przez serwer jest widziany jako &lt;code&gt;/home/LOGIN/&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;echo …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 12 Feb 2011 15:07:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2011-02-12:/cron-plus-php-na-cal-pl.html</guid><category>PHP</category><category>cal.pl</category><category>cron</category><category>PHP</category></item><item><title>RYM – Sławek</title><link>https://blog.furas.pl/rym-slawek.html</link><description>&lt;pre&gt;
    Proszę państwa oto Sławek.
    Biega w spodniach bez nogawek.
    W rękawiczkach dla zabawy
    Kosi w piątki multum trawy.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 28 Sep 2010 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2010-09-28:/rym-slawek.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - Małgorzato !</title><link>https://blog.furas.pl/rym-malgorzata.html</link><description>&lt;pre&gt;
    Małgorzato ! Małgorzato !
    Dawno się skończyło lato !

    Lecz niesworna Małgorzata
    Wciąż w zakrótkich gatkach lata.

/* lecz niesworna Małgorzata, dalej z gołym pępkiem lata */

    Małgorzato ! Małgorzato !
    Jesteś w blogu. Co ty na to ?
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 15 Oct 2009 20:33:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2009-10-15:/rym-malgorzata.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - Na rym</title><link>https://blog.furas.pl/rym-rym-na-rymowanie.html</link><description>&lt;p&gt;Rym z odległych czasów.&lt;/p&gt;
&lt;pre&gt;
    Tak jakoś wypada,
    że samo się składa.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 15 Oct 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2009-10-15:/rym-rym-na-rymowanie.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - Fryzura</title><link>https://blog.furas.pl/rym-fryz.html</link><description>&lt;pre&gt;
    Ach, cóż to, cóż to, niech ktoś mi powie
    Ach, cóż to Pani ma dziś na głowie ?

    To nie kapelusz, to nie sandały
    A wszak podziwia to dziś świat cały !
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 08 Oct 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2009-10-08:/rym-fryz.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - Na złośnice</title><link>https://blog.furas.pl/rym-na-zlosnice.html</link><description>&lt;pre&gt;
    Patrzę w Twoje piękne oczy
    Zaraz diabeł z nich wyskoczy

    Będzie szalał po pokoju
    Oj, nie będzie dziś spokoju.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 07 Oct 2009 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2009-10-07:/rym-na-zlosnice.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - U grawera</title><link>https://blog.furas.pl/rym-u-grawera.html</link><description>&lt;p&gt;Rym z odległych czasów.&lt;/p&gt;
&lt;pre&gt;
    Co Pan tu ma ?
    Nic tylko szkła ?

    Szkła i kamienie,
    W cuda je zmienie.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 23 Jul 2009 15:28:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2009-07-23:/rym-u-grawera.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - ul. Wielki Rów</title><link>https://blog.furas.pl/rym-ulica-wielki-row.html</link><description>&lt;pre&gt;
    Wielki Rów,
    pełen krów,

    muczą, buczą, kręcą mordą
    gdzie podziały kropki bordo ?
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Thu, 23 Jul 2009 15:03:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2009-07-23:/rym-ulica-wielki-row.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - Smutki</title><link>https://blog.furas.pl/rym-smutki.html</link><description>&lt;pre&gt;
    Czy nachodzą Ciebie smutki,
    bo weekendzik jest za krótki ?
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Wed, 03 Sep 2008 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2008-09-03:/rym-smutki.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>RYM - Zapomniana strona</title><link>https://blog.furas.pl/rym-zapomniana-strona.html</link><description>&lt;pre&gt;
    Dawno tu nie zaglądałem,
    że aż hasła zapomniałem.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Sat, 07 Jun 2008 00:00:00 +0200</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2008-06-07:/rym-zapomniana-strona.html</guid><category>inne/rymy</category><category>inne</category><category>rymy</category></item><item><title>O mnie ...</title><link>https://blog.furas.pl/bartlomiej-furas-burek.html</link><description>&lt;p&gt;Bartłomiej furas Burek&lt;/p&gt;
&lt;p&gt;Mail: furas [at] tlen.pl&lt;/p&gt;
&lt;h2&gt;Profile na:&lt;/h2&gt;
&lt;h2&gt;Zainteresowania:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Python - requests, lxml, beautifulsoup, scrapy, Tkinter, PyGame, wxPython, PySide/PyQt&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Linux - Bash,Fish&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HTML5, CSS3&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;JavaScript - jQuery&lt;/li&gt;
&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 18 Mar 2008 23:21:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2008-03-18:/bartlomiej-furas-burek.html</guid><category>inne</category></item><item><title>Hello World of Blog !</title><link>https://blog.furas.pl/hello-world-of-blog.html</link><description>&lt;p&gt;Na cholere mi blog :-/&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartłomiej 'furas' Burek</dc:creator><pubDate>Tue, 18 Mar 2008 23:21:00 +0100</pubDate><guid isPermaLink="false">tag:blog.furas.pl,2008-03-18:/hello-world-of-blog.html</guid><category>inne</category><category>inne</category></item></channel></rss>