curl, sed // Кто-нибудь знает лучший способ извлечь информацию из Интернета и обработать? - PullRequest
2 голосов
/ 14 марта 2012

Я хотел посмотреть, с какой скоростью патентные поверенные и патентные поверенные регистрируются в Бюро по патентам и товарным знакам США.USPTO предлагает .zip файл данных об адвокатах и ​​агентах, но, как ни странно, не предоставляет даты регистрации в .zip файле.Эти даты указаны только на веб-сайте ВПТЗ США под каждым адвокатом или агентом.

Чтобы определить даты, я использовал следующее:

curl -q https://oedci.uspto.gov/OEDCI/details.do?regisNum=[25560-69398:500] | sed -e 's/<[^>]*>//g' | sed -n -e '/Registered/,/nbsp/p' -e '/Registration/,/nbsp/p' | sed -e 's/&nbsp;//g' > dates.txt

Мне потребовалось столько данных, чтобы установитьтенденция, поэтому я решил перенести даты регистрации для каждого 500-го адвоката / агента.

В итоге у меня был файл, содержащий немного больше информации, чем мне нужно (например, мне не нужны заголовки, толькорегистрационные номера и даты), но файл был достаточно мал, чтобы отредактировать его вручную и затем построить.

Вопрос: Есть ли лучший и / или более простой способ выполнить то, что я намеревался сделать здесь?Например, было бы очень неплохо не редактировать вручную что-либо и напрямую создавать столбчатые данные для построения графика.

Предостережения:
1) У некоторых адвокатов есть две даты регистрации, одна для тех случаев, когда они зарегистрированы в качестве агентаи один, когда они зарегистрированы в качестве адвоката.Мне нужна только первая дата, и мне пришлось отредактировать вторые даты.
2) Некоторые регистрационные номера не существуют.В моем наборе данных, используя команду (ы) выше, если регистрационный номер не существует, он был пропущен.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 14 марта 2012

Если вы можете запустить код Python, тогда я настоятельно рекомендую использовать Beautiful Soup .

0 голосов
/ 04 июня 2012

Если вы можете запустить Python, взгляните на html5lib .

0 голосов
/ 14 марта 2012

curl (или аналогичный инструмент) и регулярные выражения могут дать вам долгий путь к быстрым и грязным решениям, но, как вы уже знаете, они не подходят для тяжелых условий работы.

Вам нужен скребок, который поможет вам автоматизировать все этапы обработки веб-страниц; или, по крайней мере, полноценный html-анализатор для надежного извлечения информации из (надеюсь, достаточно хорошо структурированных) данных страницы. Практически каждый популярный язык окружает многих, поэтому ответ зависит от того, с каким языком вам удобнее. Например, если вы в Python, scrapy - это хорошо известное решение для полного скребка. bs4 имеет приятный интерфейс для извлечения данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...