<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to web</title><link>https://sourceforge.net/p/ba-py/wiki/web/</link><description>Recent changes to web</description><atom:link href="https://sourceforge.net/p/ba-py/wiki/web/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 28 Apr 2024 12:51:26 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/ba-py/wiki/web/feed" rel="self" type="application/rss+xml"/><item><title>web modified by BHM-Bob G</title><link>https://sourceforge.net/p/ba-py/wiki/web/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="brief"&gt;Brief&lt;/h1&gt;
&lt;p&gt;web sub-module mainly work for providing some small APIs to make a rough web-crawler even more simple. This sub-module constains multi-threads, BeautifulSoup, string utils and selenium browser control utils.&lt;/p&gt;
&lt;h1 id="api"&gt;API文档&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;generated by cahtGPT&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;函数和类&lt;/h2&gt;
&lt;h3 id="get_url_pageurlstr-coding-gbk"&gt;get_url_page(url:str, coding = 'gbk')&lt;/h3&gt;
&lt;p&gt;给定一个URL和编码方式，返回页面的解码内容。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;url：要访问的URL的字符串表示。&lt;/li&gt;
&lt;li&gt;coding：页面的字符编码方式的字符串表示。默认为'gbk'。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;解码后的页面内容的字符串表示。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="get_url_page_surlstr-coding-gbk"&gt;get_url_page_s(url:str, coding = 'gbk')&lt;/h3&gt;
&lt;p&gt;返回给定URL的HTML页面内容。该函数有两个参数：&lt;br/&gt;
- url：要检索的网页的URL的字符串表示。&lt;br/&gt;
- coding：HTML内容的编码方式的字符串表示。默认为'gbk'。&lt;br/&gt;
该函数尝试使用get_url_page函数从给定的URL检索HTML页面内容，并使用指定的编码方式。如果失败，则返回'-html-None'。&lt;/p&gt;
&lt;h3 id="get_url_pageurlstr-return_html_textbool-false-debugbool-false-coding-gbk"&gt;get_url_page(url:str, return_html_text:bool = False, debug:bool = False, coding = 'gbk')&lt;/h3&gt;
&lt;p&gt;该函数接受一个URL，并返回一个BeautifulSoup对象，表示URL的HTML页面。它还可以选择返回HTML文本字符串。它还接受用于调试和指定要检索的页面的编码的可选参数。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;url (str)：要检索的URL的字符串表示。&lt;/li&gt;
&lt;li&gt;return_html_text (bool)：一个布尔值，指示是否返回HTML文本字符串。默认为False。&lt;/li&gt;
&lt;li&gt;debug (bool)：一个布尔值，指示是否使用调试模式。默认为False。&lt;/li&gt;
&lt;li&gt;coding：要检索的页面的编码。默认为'gbk'。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;BeautifulSoup对象：表示URL的HTML页面的BeautifulSoup对象。&lt;/li&gt;
&lt;li&gt;str（可选）：如果&lt;code&gt;return_html_text&lt;/code&gt;为True，则返回HTML文本字符串。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="get_url_pagebrowser-urlstr-return_html_textbool-false-debug-false"&gt;get_url_page(browser, url:str, return_html_text:bool = False, debug = False)&lt;/h3&gt;
&lt;p&gt;使用webdriver实例检索网页的HTML源代码。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;browser：webdriver实例。&lt;/li&gt;
&lt;li&gt;url (str)：要检索的网页的URL。&lt;/li&gt;
&lt;li&gt;return_html_text (bool)：是否返回HTML源代码作为字符串。&lt;/li&gt;
&lt;li&gt;debug (bool)：是否启用调试模式。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;如果&lt;code&gt;return_html_text&lt;/code&gt;为True，则返回一个包含BeautifulSoup对象和原始HTML源代码的元组。否则，返回一个表示解析后的HTML的BeautifulSoup对象。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="get_betweenstringstr-headstr-tailstr-headrfindbool-false-tailrfindbool-true-retheadbool-false-rettailbool-false"&gt;get_between(string:str, head:str, tail:str, headRFind:bool = False, tailRFind:bool = True, retHead:bool = False, retTail:bool = False)&lt;/h3&gt;
&lt;p&gt;返回&lt;code&gt;string&lt;/code&gt;中位于最后一个&lt;code&gt;head&lt;/code&gt;和第一个&lt;code&gt;tail&lt;/code&gt;之间的子字符串。如果&lt;code&gt;headRFind&lt;/code&gt;为True，则使用最后一个&lt;code&gt;head&lt;/code&gt;来查找子字符串的起始索引；否则，使用第一个&lt;code&gt;head&lt;/code&gt;。如果&lt;code&gt;tailRFind&lt;/code&gt;为True，则使用最后一个&lt;code&gt;tail&lt;/code&gt;来查找子字符串的结束索引；否则，使用第一个&lt;code&gt;tail&lt;/code&gt;。如果&lt;code&gt;retHead&lt;/code&gt;为True，则返回的子字符串包括&lt;code&gt;head&lt;/code&gt;；否则，它从&lt;code&gt;head&lt;/code&gt;之后开始。如果&lt;code&gt;retTail&lt;/code&gt;为True，则返回的子字符串包括&lt;code&gt;tail&lt;/code&gt;；否则，它在&lt;code&gt;tail&lt;/code&gt;之前结束。如果&lt;code&gt;string&lt;/code&gt;中没有找到&lt;code&gt;head&lt;/code&gt;或&lt;code&gt;tail&lt;/code&gt;，则返回错误消息。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;string：要从中提取子字符串的字符串。&lt;/li&gt;
&lt;li&gt;head：子字符串的起始分隔符。&lt;/li&gt;
&lt;li&gt;tail：子字符串的结束分隔符。&lt;/li&gt;
&lt;li&gt;headRFind：是否查找最后一个（True）或第一个（False）&lt;code&gt;head&lt;/code&gt;的出现。&lt;/li&gt;
&lt;li&gt;tailRFind：是否查找最后一个（True）或第一个（False）&lt;code&gt;tail&lt;/code&gt;的出现。&lt;/li&gt;
&lt;li&gt;retHead：是否在返回的子字符串中包含&lt;code&gt;head&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;retTail：是否在返回的子字符串中包含&lt;code&gt;tail&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;&lt;code&gt;string&lt;/code&gt;中&lt;code&gt;head&lt;/code&gt;和&lt;code&gt;tail&lt;/code&gt;之间的子字符串。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="get_between_restringstr-headstr-tailstr-head_rbool-false-tail_rbool-true-ret_headbool-false-ret_tailbool-false"&gt;get_between_re(string:str, head:str, tail:str, head_r:bool = False, tail_r:bool = True, ret_head:bool = False, ret_tail:bool = False)&lt;/h3&gt;
&lt;p&gt;返回&lt;code&gt;string&lt;/code&gt;中位于第一个&lt;code&gt;head&lt;/code&gt;和第一个&lt;code&gt;tail&lt;/code&gt;之间的子字符串。如果&lt;code&gt;head_r&lt;/code&gt;为True，则返回位于最后一个&lt;code&gt;head&lt;/code&gt;和第一个&lt;code&gt;tail&lt;/code&gt;之间的子字符串。如果&lt;code&gt;tail_r&lt;/code&gt;为True，则返回位于第一个&lt;code&gt;head&lt;/code&gt;和最后一个&lt;code&gt;tail&lt;/code&gt;之间的子字符串。如果&lt;code&gt;ret_head&lt;/code&gt;为True，则在返回的子字符串中包含&lt;code&gt;head&lt;/code&gt;子字符串。如果&lt;code&gt;ret_tail&lt;/code&gt;为True，则在返回的子字符串中包含&lt;code&gt;tail&lt;/code&gt;子字符串。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;string：要搜索子字符串的字符串。&lt;/li&gt;
&lt;li&gt;head：子字符串的左边界。&lt;/li&gt;
&lt;li&gt;tail：子字符串的右边界。&lt;/li&gt;
&lt;li&gt;head_r：如果为True，则返回位于最后一个&lt;code&gt;head&lt;/code&gt;和第一个&lt;code&gt;tail&lt;/code&gt;之间的子字符串。&lt;/li&gt;
&lt;li&gt;tail_r：如果为True，则返回位于第一个&lt;code&gt;head&lt;/code&gt;和最后一个&lt;code&gt;tail&lt;/code&gt;之间的子字符串。&lt;/li&gt;
&lt;li&gt;ret_head：如果为True，则在返回的子字符串中包含&lt;code&gt;head&lt;/code&gt;子字符串。&lt;/li&gt;
&lt;li&gt;ret_tail：如果为True，则在返回的子字符串中包含&lt;code&gt;tail&lt;/code&gt;子字符串。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;&lt;code&gt;string&lt;/code&gt;中&lt;code&gt;head&lt;/code&gt;和&lt;code&gt;tail&lt;/code&gt;之间的子字符串。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="transfer_str2bybystr"&gt;transfer_str2by(by:str)&lt;/h3&gt;
&lt;p&gt;将Selenium By标识符的字符串表示转换为实际的By标识符。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;by：By标识符的字符串表示。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;By标识符。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="send_browser_keybrowser-keysstr-elementstr-bystr-class-waitint-5"&gt;send_browser_key(browser, keys:str, element:str, by:str = 'class', wait:int = 5)&lt;/h3&gt;
&lt;p&gt;使用Selenium WebDriver将一串键发送到网页上的元素。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;browser：要使用的WebDriver对象。&lt;/li&gt;
&lt;li&gt;keys：要发送到元素的键的字符串。&lt;/li&gt;
&lt;li&gt;element：要发送键的元素的标识符。&lt;/li&gt;
&lt;li&gt;by：用于查找元素的方法。默认为'class'。&lt;/li&gt;
&lt;li&gt;wait：等待元素出现的最长时间（秒）。默认为5。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;无。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="click_browserbrowser-elementstr-bystr-class-wait-5"&gt;click_browser(browser, element:str, by:str = 'class', wait = 5)&lt;/h3&gt;
&lt;p&gt;使用Selenium WebDriver在浏览器中单击指定的元素。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;browser：要使用的Selenium WebDriver。&lt;/li&gt;
&lt;li&gt;element：要单击的元素的标识符。&lt;/li&gt;
&lt;li&gt;by：用于定位元素的方法（默认为'class'）。&lt;/li&gt;
&lt;li&gt;wait：等待元素出现的秒数。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;无。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_wait_for_quitstatuesque"&gt;_wait_for_quit(statuesQue)&lt;/h3&gt;
&lt;p&gt;循环等待用户输入'e'，然后发送退出信号。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;statuesQue：用于发送和接收状态的队列。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;0。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="statues_que_optstheque-var_name-opts-args"&gt;statues_que_opts(theQue, var_name, opts, *args)&lt;/h3&gt;
&lt;p&gt;根据选项对状态队列进行操作。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;theQue：状态队列。&lt;/li&gt;
&lt;li&gt;var_name：要操作的变量名。&lt;/li&gt;
&lt;li&gt;opts：操作选项。&lt;/li&gt;
&lt;li&gt;args：操作参数。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;根据选项返回的值。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="get_inputpromotstr-end-n"&gt;get_input(promot:str = '', end = '\n')&lt;/h3&gt;
&lt;p&gt;获取用户输入。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;promot：提示信息。&lt;/li&gt;
&lt;li&gt;end：结束符。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;用户输入的字符串。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="show_prog_infoidxint-sumint-1-freqint-10-otherinfostr"&gt;show_prog_info(idx:int, sum:int = -1, freq:int = 10, otherInfo:str = '')&lt;/h3&gt;
&lt;p&gt;以一定的频率打印任务的进度信息。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;参数：&lt;/li&gt;
&lt;li&gt;idx：任务的当前进度。&lt;/li&gt;
&lt;li&gt;sum：任务的总大小。默认为-1。&lt;/li&gt;
&lt;li&gt;freq：打印进度信息的频率。默认为10。&lt;/li&gt;
&lt;li&gt;otherInfo：其他信息。默认为空字符串。&lt;/li&gt;
&lt;li&gt;返回值：&lt;/li&gt;
&lt;li&gt;无。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="timer"&gt;Timer&lt;/h3&gt;
&lt;p&gt;计时器类，用于测量时间间隔。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;方法：&lt;/li&gt;
&lt;li&gt;OnlyUsed()：返回上次调用到现在的时间间隔。&lt;/li&gt;
&lt;li&gt;__call__()：返回上次调用到现在的时间间隔，并更新计时器。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="threadspool"&gt;ThreadsPool&lt;/h3&gt;
&lt;p&gt;线程池类，用于管理多个线程。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;方法：&lt;/li&gt;
&lt;li&gt;__init__(sum_threads:int, self_func, other_data, name = 'ThreadsPool')：初始化线程池。&lt;/li&gt;
&lt;li&gt;put_task(data)：向线程池中添加任务。&lt;/li&gt;
&lt;li&gt;loop2quit(wait2quitSignal)：循环等待任务完成并返回结果。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;全局变量&lt;/h2&gt;
&lt;h3 id="chromedriverpath"&gt;CHROMEDRIVERPATH&lt;/h3&gt;
&lt;p&gt;ChromeDriver的路径。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;类型：字符串&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="statuesque"&gt;statuesQue&lt;/h3&gt;
&lt;p&gt;用于发送和接收状态的队列。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;类型：Queue&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BHM-Bob G</dc:creator><pubDate>Sun, 28 Apr 2024 12:51:26 -0000</pubDate><guid>https://sourceforge.net273a349a263ce71bede66cac197e78c0e83c5957</guid></item></channel></rss>