美丽的汤 - 文章网址抓取。无法抓取额外加载文章的网址

时间:2017-08-02 05:38:01

标签: python function selenium web-scraping beautifulsoup

我正在编写一个程序,根据搜索字词从网站上抓取文章的网址。目前我只能从第一页抓取文章网址。

我可以访问加载按钮并加载其他文章,但我无法抓取他们的网址。

我已将整个代码拆分为2个单独的模块,以便更清晰。我试图将它们组合成一个单独的模块,但输出只是重复显示第一页的文章URL。我需要帮助将这两个模块组合成一个工作模块。

此代码根据搜索字词

从第一页抓取文章网址
from retry import retry
from explicit import waiter
from selenium import webdriver
from selenium.common.exceptions import StaleElementReferenceException

@retry(StaleElementReferenceException, tries=10, delay=0.5)
def click_more(driver):
    waiter.find_element(driver, 'div.loadm').click()

driver = webdriver.Chrome()

try:
    driver.get("http://www.marketing-interactive.com/?s=digital+marketing")

    while True:
        click_more(driver)

此代码自动访问" LOAD MORE"按钮并加载其余文章

<script>
var i = 0; 
$('#append-btn').click(function(){
     var html = '';
     html += '<div class="form-group" id="multiselect">';
     html += '<label class="col-md-4 control-label" for="rolename">Role Name</label>';
     html += '<div class="col-md-4 test">';
     html += '    <select id="dates-field2" class="multiselect-ui'+i+' form-control" multiple="multiple">';
     html += '        <option value="cheese">Cheese</option>';
     html += '        <option value="tomatoes">Tomatoes</option>';
     html += '        <option value="mozarella">Mozzarella</option>';
     html += '        <option value="mushrooms">Mushrooms</option>';
     html += '        <option value="pepperoni">Pepperoni</option>';
     html += '        <option value="onions">Onions</option>';
     html += '    </select>';
     html += '</div>';
     html += '</div>';
     $(html).appendTo('.div2');
     $('.multiselect-ui'+i).multiselect({
        includeSelectAllOption: true
     });
     i++
 });
</script>

1 个答案:

答案 0 :(得分:0)

实际上没有必要点击“加载更多”,因为当你点击“加载更多”它会发送一个像这样的ajax请求

http://www.marketing-interactive.com/wp-content/themes/MI/library/inc/loop_handler.php?pageNumber=2&postType=search&searchValue=facebook

在这里,您只需更改pageNumber并获取新的数据列表。如果没有可用的文章,它将向您发送空白回复

http://www.marketing-interactive.com/wp-content/themes/MI/library/inc/loop_handler.php?pageNumber=1000&postType=search&searchValue=facebook