1. 【昊辰网站搭建】 > 编程教程 >

成都网站优化:百度贴吧自动采集链接,selenium自动化教程!

今天成都网站优化有需要大量贴吧的链接和名字,但是一个个去找又太麻烦,就写了个自动化程序进行爬取,如果是刚入门的Selenium自动化们可以借鉴一下

使用Selenium自动化抓取百度贴吧的名字和链接过滤空白链接 

由于是不会经常用到所以匹配大多采取的XPATH进行匹配,如果在工作环境中建议使用ID或CLASS进行匹配这样会更加精确

示例链接:
http://tieba.baidu.com/f/fdir?fd=%C9%CC%D2%B5%B7%FE%CE%F1&sd=%BD%BB%CD%A8%D4%CB%CA%E4&pn=1

抓取的范围:包括了翻页后的所有链接

百度贴吧自动抓取教程

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as Ec
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait

chrome_options = webdriver.ChromeOptions()
# 使用headless无界面浏览器模式
chrome_options.add_argument('disable-infobars')  # 去除自动化测试
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=chrome_options)
sort_wait = WebDriverWait(driver, 5)
long_wait = WebDriverWait(driver, 60)
driver.get('http://tieba.baidu.com/f/fdir?fd=%C9%CC%D2%B5%B7%FE%CE%F1&sd=%BD%BB%CD%A8%D4%CB%CA%E4&pn=1')
sort_wait.until(Ec.visibility_of_all_elements_located((By.XPATH,'//*[@id="dir_content_main"]/div[1]/table/tbody/tr/td/ul')))

L = []
ul = driver.find_element_by_xpath('//*[@id="dir_content_main"]/div[1]/table/tbody/tr/td/ul')
url_list = ul.find_elements_by_tag_name('a')
for x in url_list:
    L.append(x.get_attribute('href'))

def get_xpath_table():
    sort_wait.until(Ec.visibility_of_all_elements_located((By.XPATH,'//*[@id="dir_content_main"]/div[2]/table/tbody')))
    body = driver.find_element_by_xpath('//*[@id="dir_content_main"]/div[2]/table/tbody')
    body_list = body.find_elements_by_tag_name('a')
    with open('url_text.txt', 'a', encoding='UTF-8-SIG') as fw:
        for b in body_list:
            if b.text != '':
                fw.write(f"{b.text}	{b.get_attribute('href')}
")


def click_page():
    danqian = driver.find_element_by_class_name('current').text
    all_page = driver.find_element_by_class_name('pagination')
    page_link = all_page.find_elements_by_tag_name('a')
    for x in page_link:
        try:
            int(x.text)
        except Exception:
            continue
        if int(danqian) + 1 == int(x.text):
            x.click()
            return True
    return False

while True:
    get_xpath_table()
    if click_page() == False:
        try:
            chu = L.pop()
        except Exception:
            break
        sql = f'window.open("{chu}")'
        driver.execute_script(sql)
        header = driver.window_handles
        driver.close()
        driver.switch_to.window(header[len(header)-1])

成都SEO会每日分享一下日常用到的代码,如果你有需要爬取的页面或者一些比较重复操作的页面操作可以联系成都昊辰SEO优化,我们可以一起学习

标题:成都网站优化:百度贴吧自动采集链接,selenium自动化教程!

作者:成都SEO优化

链接:https://www.luohao2.com/bianchengjiaocheng/103.html

声明:本文为成都昊辰SEO优化原创,如需转载请联系作者,2642657068

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息