Всем привет! Думаю у многих возникал вопрос как напарсить статьи с сайтов. Лучше что придумал на данный момент это парсить список урлов (думаю тут ни у кого не возникает проблем) а потом парсером HTML::TextExtractor вытягивать контент. Но, есть ньюансы - как заставить вытягивать только статью без другого контента который идет на странице, и как сохранять каждую статью с целевого сайта в отдельный файл? Сайты со статьями для примера: http://www.personal-loan.my/al-rajhi-personal-loan/236/ http://www.auctioncope.com/guide/how-to-remove-paypal-limitation-and-restore-account-access/ http://www.acaloans.com.au/personal-finance/
Как вариант, проверять размер текста и отсеивать маленькие. В примере я задал размер > 1000 символов. Это не гарантирует, что будут найдены все именно статьи, но все же отсеивает много ненужного. Относительно сохранения, то в примере результат сохраняется в файл с именем домена и датой. Спойлер: Код для импорта Код: eyJwcmVzZXQiOiJkZWZhdWx0IiwidmFsdWUiOnsicHJlc2V0IjoiZGVmYXVsdCIs InBhcnNlcnMiOltbIkhUTUw6OlRleHRFeHRyYWN0b3IiLCJkZWZhdWx0Iix7InR5 cGUiOiJvdmVycmlkZSIsImlkIjoiZm9ybWF0cmVzdWx0IiwidmFsdWUiOiJbJSBG T1JFQUNIIHRleHQgSU4gdGV4dHMgJV1cblslIHRleHRzLiR7bG9vcC5pbmRleH0u dGV4dC5sZW5ndGggPiAxMDAwID8gdGV4dHMuJHtsb29wLmluZGV4fS50ZXh0IDog JycgLSVdXG5bJSBFTkQgJV0ifV1dLCJyZXN1bHRzRm9ybWF0IjoiJHAxLnByZXNl dCIsInJlc3VsdHNTYXZlVG8iOiJmaWxlIiwicmVzdWx0c0ZpbGVOYW1lIjoicG9z LyRxdWVyeS5kb21haW4tJGRhdGVmaWxlLmZvcm1hdCgpLnR4dCIsImFkZGl0aW9u YWxGb3JtYXRzIjpbXSwicmVzdWx0c1VuaXF1ZSI6Im5vIiwicXVlcnlGb3JtYXQi OlsiJHF1ZXJ5Il0sInVuaXF1ZVF1ZXJpZXMiOmZhbHNlLCJzYXZlRmFpbGVkUXVl cmllcyI6ZmFsc2UsIml0ZXJhdG9yT3B0aW9ucyI6eyJvbkFsbExldmVscyI6ZmFs c2UsInF1ZXJ5QnVpbGRlcnNBZnRlckl0ZXJhdG9yIjpmYWxzZX0sInJlc3VsdHNP cHRpb25zIjp7Im92ZXJ3cml0ZSI6ZmFsc2V9LCJkb0xvZyI6Im5vIiwia2VlcFVu aXF1ZSI6Ik5vIiwibW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1bHRzUHJlcGVuZCI6 IiIsInJlc3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpbeyJzb3VyY2Ui OiJxdWVyeSIsInR5cGUiOiJleHRyYWN0RG9tYWluIiwidG8iOiJkb21haW4ifV0s InJlc3VsdHNCdWlsZGVycyI6W3sic291cmNlIjpbMCxbInRleHRzIiwidGV4dCJd XSwidHlwZSI6InJlbW92ZUh0bWwiLCJhcnJheSI6InRleHRzIiwidG8iOiJ0ZXh0 In1dLCJjb25maWdPdmVycmlkZXMiOltdfX0=
подскажите пжл, как тут добавить перенос, после точки новая строка, пробовал http://take.ms/MbeXT и возможные вариации, не помогло (
На данный момент такой возможности нету: http://a-parser.com/threads/1804/ Проанализируйте сайт. На первый взгляд, там JS подгружает инфу...
Пресет работает отлично, но в сохраняемом файле остается много пустых строк, подскажите пож. как их удалить?
Измените немного формат результата: Код: [% FOREACH text IN texts; texts.${loop.index}.text.length > 1000 ? texts.${loop.index}.text _ "\n" : ''; END %]
Смысл HTML::TextExtractor чтобы текст собирать. Если нужны и теги, то это другой парсер совсем нужно делать
А какой алгоритм у ТекстЭктрактора? Это какая-то регулярка, которая вытягивает текст, а потом чистит хтмл? Или вначале режется хтмл, а потом собираются куски длинной больше Х символов? Возникла необходимость собирать статьи по урлам с разных сайтов, так вот а-парсер справляется весьма неплохо, собирает почти без мусора, но режет весь хтмл, а мне нужно чтобы картинки, заголовки и видео оставалось в контенте. Можно ли как-то использовать алгоритм сбора из текст-экстрактора? Но не фиьлтровать определеные HTML теги в тексте?
Там сложный алгоритм, и я не могу его рассказать. Алгоритм сбора из текст-экстрактора нельзя использовать, для вашей задачи нужно писать отдельный парсер который будет работать по нужной вам логике