Brief
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.
API文档
generated by cahtGPT
函数和类
get_url_page(url:str, coding = 'gbk')
给定一个URL和编码方式,返回页面的解码内容。
- 参数:
- url:要访问的URL的字符串表示。
- coding:页面的字符编码方式的字符串表示。默认为'gbk'。
- 返回值:
- 解码后的页面内容的字符串表示。
get_url_page_s(url:str, coding = 'gbk')
返回给定URL的HTML页面内容。该函数有两个参数:
- url:要检索的网页的URL的字符串表示。
- coding:HTML内容的编码方式的字符串表示。默认为'gbk'。
该函数尝试使用get_url_page函数从给定的URL检索HTML页面内容,并使用指定的编码方式。如果失败,则返回'-html-None'。
get_url_page(url:str, return_html_text:bool = False, debug:bool = False, coding = 'gbk')
该函数接受一个URL,并返回一个BeautifulSoup对象,表示URL的HTML页面。它还可以选择返回HTML文本字符串。它还接受用于调试和指定要检索的页面的编码的可选参数。
- 参数:
- url (str):要检索的URL的字符串表示。
- return_html_text (bool):一个布尔值,指示是否返回HTML文本字符串。默认为False。
- debug (bool):一个布尔值,指示是否使用调试模式。默认为False。
- coding:要检索的页面的编码。默认为'gbk'。
- 返回值:
- BeautifulSoup对象:表示URL的HTML页面的BeautifulSoup对象。
- str(可选):如果
return_html_text
为True,则返回HTML文本字符串。
get_url_page(browser, url:str, return_html_text:bool = False, debug = False)
使用webdriver实例检索网页的HTML源代码。
- 参数:
- browser:webdriver实例。
- url (str):要检索的网页的URL。
- return_html_text (bool):是否返回HTML源代码作为字符串。
- debug (bool):是否启用调试模式。
- 返回值:
- 如果
return_html_text
为True,则返回一个包含BeautifulSoup对象和原始HTML源代码的元组。否则,返回一个表示解析后的HTML的BeautifulSoup对象。
get_between(string:str, head:str, tail:str, headRFind:bool = False, tailRFind:bool = True, retHead:bool = False, retTail:bool = False)
返回string
中位于最后一个head
和第一个tail
之间的子字符串。如果headRFind
为True,则使用最后一个head
来查找子字符串的起始索引;否则,使用第一个head
。如果tailRFind
为True,则使用最后一个tail
来查找子字符串的结束索引;否则,使用第一个tail
。如果retHead
为True,则返回的子字符串包括head
;否则,它从head
之后开始。如果retTail
为True,则返回的子字符串包括tail
;否则,它在tail
之前结束。如果string
中没有找到head
或tail
,则返回错误消息。
- 参数:
- string:要从中提取子字符串的字符串。
- head:子字符串的起始分隔符。
- tail:子字符串的结束分隔符。
- headRFind:是否查找最后一个(True)或第一个(False)
head
的出现。
- tailRFind:是否查找最后一个(True)或第一个(False)
tail
的出现。
- retHead:是否在返回的子字符串中包含
head
。
- retTail:是否在返回的子字符串中包含
tail
。
- 返回值:
string
中head
和tail
之间的子字符串。
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)
返回string
中位于第一个head
和第一个tail
之间的子字符串。如果head_r
为True,则返回位于最后一个head
和第一个tail
之间的子字符串。如果tail_r
为True,则返回位于第一个head
和最后一个tail
之间的子字符串。如果ret_head
为True,则在返回的子字符串中包含head
子字符串。如果ret_tail
为True,则在返回的子字符串中包含tail
子字符串。
- 参数:
- string:要搜索子字符串的字符串。
- head:子字符串的左边界。
- tail:子字符串的右边界。
- head_r:如果为True,则返回位于最后一个
head
和第一个tail
之间的子字符串。
- tail_r:如果为True,则返回位于第一个
head
和最后一个tail
之间的子字符串。
- ret_head:如果为True,则在返回的子字符串中包含
head
子字符串。
- ret_tail:如果为True,则在返回的子字符串中包含
tail
子字符串。
- 返回值:
string
中head
和tail
之间的子字符串。
transfer_str2by(by:str)
将Selenium By标识符的字符串表示转换为实际的By标识符。
- 参数:
- by:By标识符的字符串表示。
- 返回值:
- By标识符。
send_browser_key(browser, keys:str, element:str, by:str = 'class', wait:int = 5)
使用Selenium WebDriver将一串键发送到网页上的元素。
- 参数:
- browser:要使用的WebDriver对象。
- keys:要发送到元素的键的字符串。
- element:要发送键的元素的标识符。
- by:用于查找元素的方法。默认为'class'。
- wait:等待元素出现的最长时间(秒)。默认为5。
- 返回值:
- 无。
click_browser(browser, element:str, by:str = 'class', wait = 5)
使用Selenium WebDriver在浏览器中单击指定的元素。
- 参数:
- browser:要使用的Selenium WebDriver。
- element:要单击的元素的标识符。
- by:用于定位元素的方法(默认为'class')。
- wait:等待元素出现的秒数。
- 返回值:
- 无。
_wait_for_quit(statuesQue)
循环等待用户输入'e',然后发送退出信号。
- 参数:
- statuesQue:用于发送和接收状态的队列。
- 返回值:
- 0。
statues_que_opts(theQue, var_name, opts, *args)
根据选项对状态队列进行操作。
- 参数:
- theQue:状态队列。
- var_name:要操作的变量名。
- opts:操作选项。
- args:操作参数。
- 返回值:
- 根据选项返回的值。
获取用户输入。
- 参数:
- promot:提示信息。
- end:结束符。
- 返回值:
- 用户输入的字符串。
show_prog_info(idx:int, sum:int = -1, freq:int = 10, otherInfo:str = '')
以一定的频率打印任务的进度信息。
- 参数:
- idx:任务的当前进度。
- sum:任务的总大小。默认为-1。
- freq:打印进度信息的频率。默认为10。
- otherInfo:其他信息。默认为空字符串。
- 返回值:
- 无。
Timer
计时器类,用于测量时间间隔。
- 方法:
- OnlyUsed():返回上次调用到现在的时间间隔。
- __call__():返回上次调用到现在的时间间隔,并更新计时器。
ThreadsPool
线程池类,用于管理多个线程。
- 方法:
- __init__(sum_threads:int, self_func, other_data, name = 'ThreadsPool'):初始化线程池。
- put_task(data):向线程池中添加任务。
- loop2quit(wait2quitSignal):循环等待任务完成并返回结果。
全局变量
CHROMEDRIVERPATH
ChromeDriver的路径。
statuesQue
用于发送和接收状态的队列。