ползать питона на одну страницу - PullRequest
0 голосов
/ 23 января 2019

Я попытался извлечь ссылки извлечения (href), которые начинаются с определенного слова, но он возвращает пустой список, даже если в исходном коде страницы есть много ссылок, которые удовлетворяют условию, я определенно что-то упускаю, ниже мойкод:

import requests
from bs4 import BeautifulSoup
import string
import os
import re

def extract_href_page(page):
    soup = BeautifulSoup(page)

    all_links = []
    links = soup.find_all('a', pattern = re.compile(r'\w*first_word'))
    # pattern = re.compile(r'\w*recette')
    print(links)
    for link in links:
          all_links.append(link['href'])  # Save href only, for example.
    return all_links

for page_number in range(1, 63):
    requete = requests.get ("https://www.website.com/pages/"+ "page".capitalize()+ "-" + str(page_number)  + ".html")
    page = requete.content
    list_links = extract_href_page(page)
    print(list_links)
    for link in list_links:
         print(link)

1 Ответ

0 голосов
/ 27 января 2019

Попробуйте это:

import requests 
from bs4 import BeautifulSoup 
import string 
import os 
import re 
def extract_href_page(page): 
    soup = BeautifulSoup(page)  
    all_links = [] 
    links = soup.find_all('a', href=True) 
    # pattern = re.compile(r'\w*recette') 
    print(links) 
    for link in links: 
        if re.match(r"\w*first_word", link["href"], re.I):
            all_links.append(link.get("href"))
...
...