2014-09-10 2 views
1

У меня есть сценарий, который захватывает данные веб-страницы со многих разных страниц и записывает данные в файл txt. Тем не менее, с каждой веб-страницы, первые 1200 строк HTML мне не нужны, поэтому я бы пропустил эту строку и написал все остальное в мой txt-файл.Как пропустить строки при записи в файл с веб-страницы?

Есть ли способ сделать это, или я должен пропустить их чтение, когда я получаю URL-адрес? Спасибо

import requests 
from requests import session 

payload = { 
    'action': 'login', 
    'username': '', 
    'password': '' 
} 


with session() as c: #Create a cookie session to login to the protected page 
    page_offset = 0 
    result_list = [] 
    c.post('login page url here', payload) 
    while page_offset <= 1000: 
     url = "actual url to scrape" 
     request = c.get(url) 

     if not request.ok: 
       print ("error") 
       # Something went wrong 

     for block in request.iter_content(1024): 
       if not block: 
         break 

       result_list.append(block) 
     page_offset += 25 
     #print (page_offset) 
     #print (result_list) 
     end_data = ','.join([str(i) for i in result_list]) 

with open("terapeak.txt", 'wb') as text_file: 
    text_file.write(bytes(end_data.strip(),'UTF-8')) 
+1

Что такое html? Разделяется ли оно символом новой строки? – yayu

+0

Текстовый файл был слишком большим для пастеина, поэтому здесь есть ссылка для удаления https://www.dropbox.com/s/9mmbbk53y8wilm2/example.txt?dl=0 – Goose

ответ

0

Невозможно частично загрузить HTML-страницу. Вы просто пропустите эти строки, которые вам не нужны. Особенно, если вы знаете точное число. Поэтому, пока вы читаете страницу html по строкам, подсчитывайте строки и записывайте только те, число которых превышает требуемое. 1200 в вашем случае.

Смежные вопросы